使 Redis 用户拥有 Redis unixsocket
Make Redis unixsocket owned by redis user
我已经在 Debian 上安装了 Redis 3.0.6。有一个 /etc/init.d/redis
文件可以在系统启动时启动 Redis 服务器,或者我可以手动调用它来 start/stop 服务器。问题是这个脚本是 运行 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 行):
sudo -u redis $EXEC $CONF
您可能需要清理旧文件(在 /var/lib
中)或重置其对 redis 的权限。
我已经在 Debian 上安装了 Redis 3.0.6。有一个 /etc/init.d/redis
文件可以在系统启动时启动 Redis 服务器,或者我可以手动调用它来 start/stop 服务器。问题是这个脚本是 运行 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 行):
sudo -u redis $EXEC $CONF
您可能需要清理旧文件(在 /var/lib
中)或重置其对 redis 的权限。