Redis dump.rdb |不是默认目录

时间:2018-08-14 04:40:47

标签: redis selinux

很抱歉,如果这是一个重复的问题,但是我已经搜索了数小时的stackoverflow,却找不到答案。

场景:

我更改了Redis的dump.rdb的默认目录,因为我的雇主希望在特定目录中使用它。我在redis.conf文件dir中编辑了该行,使其指向/ www / redis / sessions。我没有更改文件名,所以它仍然是dump.rdb。我也将它作为服务运行在/ lib / systemd / system中。如果有帮助,我正在使用redis v4.0.11。

问题:

当我使用systemctl停止守护程序时,请停止redis。我从SELinux收到一条错误消息,说redis-server没有在/ www / redis / sessions中写入的权限。它还尝试创建名称为temp-####。rdb的临时文件,而不是尝试打开dump.rdb。我检查了目录和文件权限,并确保任何用户都可以写入它。我仍然遇到相同的错误。

已尝试:  1.在systemd的服务文件中添加ReadWriteDirectories = / www / redis / sessions行。  2.更改/ www / redis / sessions目录,以便任何人都可以写入该目录。  3.将redis.conf文件中的目录更改为/ www / redis / sessions  4.检查redis实例是否使用./redis-cli CONFIG GET *加载正确的redis.conf文件。  5.添加了SELinux建议的建议的本地策略  6.使用chcon -R --type = httpd_sys_content / www / redis / sessions和chcon -R --type = httpd_sys_rw_content_t / www / redis / sessions

更改redis服务器的内容

非常感谢您的帮助或建议。

1 个答案:

答案 0 :(得分:1)

SELinux所使用的策略与用chmod等编辑的访问权限不同。如果不发布策略,您将不会得到太多帮助。作为一个疯狂的猜测,我会说redis的create mask错误。

temp-####.rdb文件不是问题。 Redis首先写入临时文件,然后将它们移动到最终目标。这是在写入失败时保留现有文件的典型方法。

您是否考虑过将.rdb保留在原位置,并简单地将其链接到您的微管理老板想要的位置?