![仅更改目录内容而不更改其本身的权限](https://linux22.com/image/54546/%E4%BB%85%E6%9B%B4%E6%94%B9%E7%9B%AE%E5%BD%95%E5%86%85%E5%AE%B9%E8%80%8C%E4%B8%8D%E6%9B%B4%E6%94%B9%E5%85%B6%E6%9C%AC%E8%BA%AB%E7%9A%84%E6%9D%83%E9%99%90.png)
我们有一个目录,希望保护它不被删除和重命名,但我们需要能够重命名、删除和创建内容。我们能做什么?
答案1
我想这对于标准 Linux 技术来说是不可能的。您需要 RichACL 来精确配置。
如果副作用不是问题,那么您可以从父目录中删除写入权限。
好吧,我必须纠正我的第一个想法:有一个标准功能的解决方法。您可以将该目录移动到其他路径,创建一个具有相同名称且没有任何写入权限的空目录,然后mount --bind
从新位置创建一个到旧位置。活动挂载点无法删除,但内容权限不受影响。
答案2
删除和重命名目录的权限由其父目录的权限决定,而不是由其自己的权限决定(就像其他文件一样)。只需将目录的权限设置为您需要的权限并使其成为父目录-w
。
根据您的用例,您可能+t
还希望使目录具有粘性 - 这样用户就无法移动其他人的文件,只能移动自己的文件。