使Redis unixsocket归Redis用户所有
我已经在Debian上安装了Redis 3.0.6。有一个使Redis unixsocket归Redis用户所有,unix,redis,debian,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.s
/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服务器?在启动服务期间更新/etc/init.d以使用
sudo
(第33行):
您可能需要清理旧文件(在
/var/lib
中)或重置其对redis的权限。在启动服务期间更新/etc/init.d以使用sudo
(第33行):
您可能需要清理旧文件(在
/var/lib
中)或重置其对redis的权限。如果在/tmp
中创建套接字会怎么样?就像我试着用redis 3一样。套接字所有者保留给redis用户itself@AliNikneshan我可以试试,但redis用户也是root用户,我也想更改。我只是不知道init.d脚本在运行期间如何向用户模拟自己。运行ps-ef | grep redis server
并检查守护进程是否在redis用户上运行。@AliNikneshan我使用sudo服务redis start启动redis
。它现在在根用户下运行<代码>根7913 1 0 03:55?00:00:06/home/redis/bin/redis server*:6379
这是/etc/init.d/redis
脚本:如果在/tmp
中创建套接字会怎么样?就像我试着用redis 3一样。套接字所有者保留给redis用户itself@AliNikneshan我可以试试,但redis用户也是root用户,我也想更改。我只是不知道init.d脚本在运行期间如何向用户模拟自己。运行ps-ef | grep redis server
并检查守护进程是否在redis用户上运行。@AliNikneshan我使用sudo服务redis start启动redis
。它现在在根用户下运行<代码>根7913 1 0 03:55?00:00:06/home/redis/bin/redis server*:6379
这是/etc/init.d/redis
脚本:
sudo -u redis $EXEC $CONF