我想允许用户 chmod 属于 root 或某个不属于自己的用户的文件。我已将文件 chmod 为 777,但收到“不允许操作”。我已将用户添加到文件组并得到相同的结果。为什么用户不能 chmod 他们具有写入权限的文件?
答案1
Unix 权限设计得很简单。您需要读取权限才能读取文件,需要写入权限才能写入文件,以及需要执行权限才能执行文件。您需要拥有一个文件才能修改其元数据。
允许可以读取文件的用户授予其他人读取权限,或者允许可以写入文件的用户授予其他人写入权限,不会对安全模型造成太大改变。这是因为 unix 权限是任意的:可以读取文件的用户可以将其内容公开给其他用户,即使这些其他用户无法读取该文件(与写入类似,用户可以充当代理并代表他人撰写)。
另一方面,允许用户授予其没有的权限将完全破坏权限系统:用户可以向自己授予所有权限。
需要更改不属于您的文件的权限的情况很少见。通常,您应该在文件创建后立即安排其具有正确的权限。如果您确实需要,您可以授予用户sudo chmod
特定模式和特定文件的权限(例如joe: ALL = (ALL) chmod g+r /path/to/file
)。
1访问和修改时间除外,这些时间很特殊,因为读取或写入文件也会设置它们。
答案2
为什么用户不能 chmod 他们具有写入权限的文件?
对于正常访问权限,这是一个设计决策。你需要理查克斯:WRITE_ACL
有可能WRITE_OWNER
。