是否有任何文件可以说明我/root
被其所有者标记为不可写的原因? ( r-xr-x---
)
我知道,凭借 CAP_DAC_OVERRIDE,其所有者通常具有写访问权限。不过看到这一点还是让我感到惊讶。所以我很好奇我是否可以从中学到什么!
在我看来,Debian 的方法看起来更自然。在 Debian 上,权限是rwx------
.
$ rpm -q --whatprovides /root
filesystem-3.2-37.fc24.x86_64
$ sudo dnf info filesystem | grep Release
Release : 37.fc24
$ grep ^VERSION= /etc/os-release
VERSION="25 (Workstation Edition)"
答案1
2009 年左右,Fedora 对此进行了更改。来源:https://bugzilla.redhat.com/show_bug.cgi?id=517575P
感谢@jordanm 指出了这一点。我试图复制相关的引用。免责声明:我确信这个渲染过程中丢失了一些东西。
这些更改剥夺了 root 的写入权限,因此您还需要 DAC_OVERRIDE 才能写入。然后,我们放弃了需要 root、但面向网络或 setuid 的功能。
批评回应
无论如何,这是一个善意的想法,但实际上,如果没有进一步的重大工作,它就无法工作,因为 uid 0 但不是 CAP_DAC_OVERRIDE 的进程仍然完全能够重写例如 /usr/bin/bash ,其中仍然有 u+w ,或 /root/.bashrc 。解决这类问题的答案就是 SELinux。对恢复目录模式 755 的补丁有异议吗?
作者的回答:
[你的软件]有什么问题?如果它尝试写入系统目录,则应该有问题。
回复:
这不是什么大问题,有效恢复 rpm-ostree 的代码很小,随着时间的推移应该不难携带。
我只是想交叉链接这些错误,以便其他遇到此问题的人可以看到我们在 rpm-ostree 中所做的更改。
第三方感叹:这是关于类中任何工具都需要的拼凑来解决这个问题。
https://github.com/projectatomic/rpm-ostree/pull/335
链接到引入此问题的 Fedora bug,并进行更改,使其也用于“compose”情况,因为:
- 同样,它并没有增加安全性
- 在“撰写”存储库上运行的工具必须在进行结帐时解决此问题,请参见例如https://lists.freedesktop.org/archives/xdg-app/2016-June/000241.html