我在Debian上安装了Redis 3.0.6。有一个/etc/init.d/redis
文件在系统启动时启动Redis服务器,或者我可以手动调用它来启动/停止服务器。问题是该脚本以root用户身份运行。
我有一个redis
用户和组,我想让Redis运行。但我无法弄清楚如何(我没有找到一个选项,在启动后使Redis切换用户ID)。在我的配置文件中,我使用
unixsocket /home/redis/redis.sock
unixsocketperm 770
但是,当然,redis.sock
归root
所有。
drwxr-xr-x 2 redis redis 4096 Jan 18 03:34 bin
drwxr-xr-x 2 redis redis 4096 Jan 18 03:55 data
-rw-r--r-- 1 redis redis 41638 Jan 18 03:52 redis.conf
-rw-r--r-- 1 redis redis 16348 Jan 18 03:55 redis.log
-rw-r--r-- 1 root root 5 Jan 18 03:55 redis.pid
srwxrwx--- 1 root root 0 Jan 18 03:55 redis.sock
这个过程也是如此。
root 7913 0.1 0.1 38016 1976 ? Ssl 03:55 0:00 /home/redis/bin/redis-server *:6379
最终,我的git
用户也在redis
组中,因此最终应该可以访问redis.sock
。 (这是为了手动部署GitLab CE)。
如何以这种方式配置Redis服务器?
答案 0 :(得分:2)
更新您的/etc/init.d以在启动服务期间使用sudo
(第33行):
sudo -u redis $EXEC $CONF
您可能需要清理旧文件(在/var/lib
中)或将其权限重置为redis。