以非root用户身份运行Redis服务

时间:2017-12-27 22:06:06

标签: redis

我已经在RHEL 7中安装了它并进行了一些配置。 它以root身份启动并运行。

我正在尝试以非root用户身份运行Redis服务。 任何指针都会受到赞赏。

3 个答案:

答案 0 :(得分:1)

如果尚未创建用户和组“redis”,请创建它。

useradd redis

然后更改名为" redis-server"的文件的所有者。和#34; redis-cli"(实际上,我建议改变所有关于redis的文件,但我不知道你安装的路径)。

chown redis. "your path"

像这样创建脚本

vim /usr/lib/systemd/system/redis.service

撰写内容

[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
User=redis
Group=redis
Type=forking
ExecStart="the absolute path of redis-server" "ths absolute path of redis.conf"
ExecStop="the absolute path of redis-cli" shutdown
[Install]
WantedBy=multi-user.target

然后您可以使用以下代码

systemctl status redis
systemctl start redis //start the service
sysyemctl stop redis //stop the service
systemctl enable redia //start the service when system boot

我还将配置粘贴到我的机器中,它对我来说效果很好 enter image description here

希望这有帮助!

答案 1 :(得分:0)

对于使用 docker 的用户,您可以使用非 root 用户构建自己的 redis 映像,如下所示:

FROM redis:6.0.10-alpine

# Create the home directory for the new non-root user.
RUN mkdir -p /home/nonroot
# Create an non-root user so our program doesn't run as root.
RUN adduser -S -h /home/nonroot nonroot
VOLUME /home/nonroot/tmp

HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \
  CMD redis-cli ping

USER nonroot

EXPOSE 6379

答案 2 :(得分:0)

可能还会将工作目录添加到服务中,因为 redis 似乎不会自行更改为该目录(至少在我的配置中):

WorkingDirectory=/var/lib/redis