有没有Linux能力使普通用户能够写入 root 拥有的文件,例如/etc/resolv.conf
/etc/fstab`?
答案1
不。有一种功能允许访问任意文件,无论权限如何 ( CAP_DAC_OVERRIDE
),但它几乎等同于授予 root 访问权限(如果您可以覆盖/etc/passwd
,对于大多数配置,您就可以进入):它仅对执行特定任务的进程有用(例如备份程序),不授予用户。并且没有任何功能可以允许绕过特定文件的权限:功能是布尔值,它们不是由文件列表参数化的。无论如何,这几乎毫无意义,因为已经有一种允许用户写入特定文件的机制:权限。
创建一个组,将用户添加到该组,并授予该组对文件的写入权限。
addgroup fstab-writers
adduser alice fstab-writers # Note that this only takes effect when alice logs in, not in her already-running session(s).
chgrp fstab-writers /etc/fstab
chmod g+w /etc/fstab
如果多个组需要对文件的特定权限,请使用访问控制列表而不是chgrp
和chmod
。
setfacl -m g:fstab-writers:rw /etc/fstab
请注意,如果系统程序覆盖有问题的文件,则不能保证它会重现组所有权或访问控制列表。但如果是这种情况,您可能无论如何都不应该手动修改此文件。
另请注意,对于 和/etc/fstab
,/etc/resolv.conf
都有完善的机制不需要授予用户写入权限。