deo*_*ren 7 logs permissions systemd
我已经测试并确认在重新启动后,权限将重置/var/log为下面列出的每个发行版/版本的默认值。问题是,为什么?
据我所知,CentOS 7 和 Debian 8/9 的默认权限是755, root:root. Ubuntu 15.04+ 的默认权限是775, root:syslog。如果我从 PPA 安装上游 rsyslog,则默认权限变为755(在 Ubuntu 16.04 上确认,大概也适用于 15.04 和 16.04 之间的 Ubuntu 版本)。
任何更改/var/log默认权限的尝试都会导致重置,大概是在下次启动时。我在相关帖子上阅读了某人的建议,它可能是工作中的 rsyslog 设置,但我切换了这些设置以符合我的期望,甚至使用了一些不起作用的设置(例如 700),结果仍然相同:重置回默认值。
然后我卸载了 rsyslog(一个安装了 rsyslog 的虚拟机,另一个安装了上游 rsyslog)并且权限仍然被重置,所以显然重置工作不是由 rsyslog 完成的。
这是systemd特有的吗?这是一个我可以实际覆盖并在重新启动之间“坚持”的设置吗?
预先感谢您提供的任何帮助。
聚苯乙烯
我的测试是在使用 LVM 的发行版的简单安装上执行的,但使用一个卷试图排除 lv 的挂载选项是问题所在。
deo*_*ren 10
我仍在深入研究细节,但看起来这些文件/var/log在启动时的权限管理中起作用:
/usr/lib/tmpfiles.d/var.conf/usr/lib/tmpfiles.d/00rsyslog.conf具有讽刺意味的是,当我grep -ri '/var/log' /var/log在 Ubuntu 16.04 机器上运行并看到以下消息时,我发现了它们:
./syslog.1:Jul 9 21:18:15 ubuntu-virtual-machine systemd-tmpfiles[616]: [/usr/lib/tmpfiles.d/var.conf:14] 路径“/var/log”的重复行”,无视。
我查看了那个文件,发现了这个:
# 这个文件是 systemd 的一部分。 # # systemd 是免费软件;您可以重新分发和/或修改它 # 根据 GNU 宽松通用公共许可证的条款,由 # 自由软件基金会;许可证的 2.1 版,或 #(由您选择)任何更高版本。 # 详见 tmpfiles.d(5) q /var 0755 - - - L /var/run - - - - ../run d /var/log 0755 - - - f /var/log/wtmp 0664 根 utmp - f /var/log/btmp 0600 根 utmp - d /var/cache 0755 - - - d /var/lib 0755 - - - d /var/spool 0755 - - -
我开始调整该d /var/log 0755 - - -行的值,但我的努力没有明显变化,我在该目录中进一步查看并找到了该/usr/lib/tmpfiles.d/00rsyslog.conf文件。
在那个文件中:
# 覆盖 systemd 的默认 tmpfiles.d/var.conf 以使 /var/log 可写 # syslog 组,以便 rsyslog 可以作为用户运行。 # 详见 tmpfiles.d(5)。 # 输入路径模式 UID GID 年龄参数 d /var/log 0775 根系统日志 -
root@ubuntu-virtual-machine:/usr/lib/tmpfiles.d# dpkg -S /usr/lib/tmpfiles.d/00rsyslog.conf
rsyslog:/usr/lib/tmpfiles.d/00rsyslog.conf
因此 rsyslog 包提供了一个 conf 包含文件,该文件试图覆盖tmpfiles.d/var.confconf 文件中设置的值。
结果是,当我卸载 rsyslog 时,会应用tmpfiles.d/var.confconf 文件设置,在本例中为0755.
我需要进一步研究是否tmpfiles.d仅适用于包维护人员,或者系统管理员是否还需要管理该区域内的文件。
编辑:
原来有三个目录,第一个具有最大的优先级(供管理员使用以覆盖其他两个目录的设置):
/etc/tmpfiles.d/*.conf/run/tmpfiles.d/*.conf/usr/lib/tmpfiles.d/*.conf更多信息:
| 归档时间: |
|
| 查看次数: |
8851 次 |
| 最近记录: |