Redis 由于权限问题,systemctl无法重新启动
我安装了redis并将redis服务器放在/usr/local/bin:Redis 由于权限问题,systemctl无法重新启动,redis,systemctl,Redis,Systemctl,我安装了redis并将redis服务器放在/usr/local/bin: -rwxr-xr-x 1 redis redis 11044232 Sep 24 00:30 redis-server -rwxr-xr-x 1 redis redis 120 Oct 6 21:30 redis.conf 我在同一文件夹/usr/local/bin中有redis.conf: -rwxr-xr-x 1 redis
-rwxr-xr-x 1 redis redis 11044232 Sep 24 00:30 redis-server
-rwxr-xr-x 1 redis redis 120 Oct 6 21:30 redis.conf
我在同一文件夹/usr/local/bin中有redis.conf:
-rwxr-xr-x 1 redis redis 11044232 Sep 24 00:30 redis-server
-rwxr-xr-x 1 redis redis 120 Oct 6 21:30 redis.conf
我在/etc/systemd/system创建了redis.service:
-rw-r--r-- 1 root root 192 Oct 6 21:46 redis.service
cat redis.conf:
Description=Redis
After=network.target
[Service]
User=redis
Group=redis
Type=Simple
ExecStart=/usr/local/bin/redis-server /usr/local/bin/redis.conf
[Install]
WantedBy=multi-user.target
但是当我跑的时候
sudo systemctl restart redis
sudo systemctl status redis
显示:无法打开仅附加的文件:权限被拒绝
如果我在redis.service中将服务单元中的用户和组更改为“root”,并再次重新启动,则redis服务器将成功启动
我确实添加了用户redis:
sudo useradd --no-create-home --shell /bin/false redis
原因是什么?我想使用专用用户redis启动服务器。原因
用户redis
没有访问/usr/local/bin/appendonly.aof
的用户权限,因为它位于/usr/local/bin
中
默认情况下,Redis工作目录相对于Redis.conf
,由以下行设置:
dir ./
解决方案
redis.conf
中的dir./
更改为可由redis
用户写入的目录redis.conf
放在可由redis
用户写入的目录中(无论如何,只有可执行文件应该位于/usr/local/bin
中)谢谢你回答我。事实上,redis.conf最初位于另一个目录/home/myname/cluster\u test/中,其用户/组都是redis。它不起作用,这就是为什么我将它移动到/usr/local/bin,但它仍然不起作用。dir./是什么意思?@user389955
dir./
指的是可以配置工作目录的redis.conf行,例如,dir/var/redis/
会将redis配置为将appendonly.aof
和redis.rdb
放在/var/redis/
目录中-您必须确保redis
用户可以通过执行chmod 700 redis
来列出、读取和写入该目录(为用户redis提供所有权限,其他任何权限)。