我想允许用户 chmod 一个由 root 或一些不是他们自己的用户拥有的文件。我已将文件修改为 777,但得到“不允许操作”。我已将用户添加到文件组并得到相同的结果。为什么用户不能 chmod 一个他们有写访问权限的文件?
Gil*_*il' 11
Unix 权限设计得非常简单。您需要读取权限才能读取文件,写入权限才能写入文件,以及执行权限才能执行文件。您需要拥有一个文件来修改其元数据¹。
允许可以读取文件的用户授予其他人读取权限,或允许可以写入文件的用户授予其他人写入权限,不会对安全模型产生太大影响。这是因为 unix 权限是自由决定的:可以读取文件的用户可以将其内容公开给其他用户,即使这些其他用户无法读取文件(与写入类似,用户可以充当代理和代他人写)。
另一方面,允许用户授予它没有的权限会完全破坏权限系统:用户可以将所有权限授予自己。
很少需要更改不属于您的文件的权限。通常,您应该在文件创建后立即安排它具有正确的权限。如果您真的需要它,您可以授予sudo chmod特定模式和特定文件(例如joe: ALL = (ALL) chmod g+r /path/to/file)的用户权限。
¹除了访问和修改时间,这是特别的,因为读取或写入文件也会设置它们。