使redis用户拥有Redis unixsocket

时间:2016-01-18 04:01:25

标签: unix redis debian

我在Debian上安装了Redis 3.0.6。有一个/etc/init.d/redis文件在系统启动时启动Redis服务器,或者我可以手动调用它来启动/停止服务器。问题是该脚本以root用户身份运行。

我有一个redis用户和组,我想让Redis运行。但我无法弄清楚如何(我没有找到一个选项,在启动后使Redis切换用户ID)。在我的配置文件中,我使用

unixsocket /home/redis/redis.sock
unixsocketperm 770

但是,当然,redis.sockroot所有。

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服务器?

1 个答案:

答案 0 :(得分:2)

更新您的/etc/init.d以在启动服务期间使用sudo(第33行):

sudo -u redis $EXEC $CONF

您可能需要清理旧文件(在/var/lib中)或将其权限重置为redis。