我被指派锁定所有/var/log
文件,以便除 root 用户之外无法读取它们。我被这个/var/log/boot.log
文件难住了。似乎每次启动后,无论之前的权限状态如何,文件都会设置为 644 权限。
我已经尝试过更改许多关键/etc/init.d
文件和函数中的 umask,但没有成功。
有人知道执行此操作的特定程序以及如何将权限设置/var/log/boot.log
为 600 吗?
答案1
通过 a fgrep -r boot.log /usr
,则为plymouth
惹的祸。 Centos 6 上的手册页plymouth
有点缺乏,尽管浏览源代码确实显示有一个no_boot_log
选项,显然可以通过传递no-boot-log
某个地方来设置(假设你没有来自普利茅斯的日志)。啊!随着更多的挖掘,有一个world_readable
标志可以调整mode
用于open(2)
调用的参数,除非它仅设置为第三个参数
log_is_opened = ply_logger_open_file (session->logger, filename, true);
悲伤的长号。无论如何,您可能会摆弄 initrd 映像来自定义它,或者可能使用 RedHat 提交错误报告 a) 编写一些该死的文档,以便减少需要的源代码探索 b) 以某种方式提供一个选项来配置该模式通过内核arg或其他东西。
答案2
在此处联系 RHEL 支持寻求答案后......
RHEL 证实普利茅斯是罪魁祸首。
他们指向一份解决方案文档(https://access.redhat.com/site/solutions/66805-- 仅限 RHEL 订阅者),验证虽然源代码中有一个标志可以以更严格的模式打开/创建日志,但无法从外部设置该标志(即没有选项)硬编码为世界可读。
RHEL 支持文档进一步表明,将 chmod 放入 /etc/rc.d/rc.local 脚本中将是进行我想要的权限更改的方法。
真糟糕!