我有一个有 10 个父目录的文件。当我使用命令更改文件的所有者时,chown
新所有者仍然无法写入文件,因为文件的父目录仍然具有不同的所有者。有没有办法也更改父目录的所有者?
如果没有,临时授予用户更改嵌套目录内文件的权限的最佳方法是什么?
答案1
用户只需要包含文件的目录中存在执行位即可访问该文件。如果在目录上设置了执行位并且用户对该文件具有写权限,则他可以编辑该文件。如果没有对目录的写权限,他将无法创建或删除文件(即使他拥有该文件),但他将能够编辑它们。请注意,尽管没有读取权限(仅设置了执行),用户将无法获取目录列表,但他必须知道文件的确切文件名才能访问它。
因此,如果我们的文件位于dirname/filename.txt
并且用户拥有该文件:
rwx--x--x 目录名
用户可以编辑dirname/filename.txt
用户不能创建dirname/filename2.txt
用户不能删除dirname/filename.txt
用户不能ls dirname
rwxr-xr-x 目录名
用户可以编辑dirname/filename.txt
用户不能创建dirname/filename2.txt
用户不能删除dirname/filename.txt
用户可以ls dirname
rwxrwxrwx 目录名
用户可以做任何事情
笔记
如果目录应用了粘滞位,则这些规则不适用。粘着位完全改变了行为(/tmp
目录应用了粘着位)。
答案2
为了回答你的问题,我建议使用 ACL访问控制列表