![防止删除文件夹但允许访问其中的所有内容](https://linux22.com/image/1484023/%E9%98%B2%E6%AD%A2%E5%88%A0%E9%99%A4%E6%96%87%E4%BB%B6%E5%A4%B9%E4%BD%86%E5%85%81%E8%AE%B8%E8%AE%BF%E9%97%AE%E5%85%B6%E4%B8%AD%E7%9A%84%E6%89%80%E6%9C%89%E5%86%85%E5%AE%B9.png)
我知道文件和目录有 +i 标志,但我有一个更深层次的问题。
有没有办法防止有权创建/访问/删除文件和文件夹的用户删除文件夹里面删除保护的文件夹?
该sudo chattr +i testfolder
标志无用,因为用户只能读取文件,而不能创建或删除文件。
该sudo chattr +a testfolder
标志不会有帮助,因为用户可以写入和读取文件,但只能附加编辑文件而不能删除它们。
我需要一个解决方案,让用户可以写入、访问和删除文件但不能删除根/父文件夹。
答案1
目录的删除取决于其父目录的权限,而不是其自身的权限。如果用户对父目录有写权限,则目录可删除,否则不可删除。
因此,如果用户不必具有在要保护的目录的同一级别创建或删除目录/文件的权限,那么这应该有效:
chmod 755 /the/parent/dir
如果仍然必须允许某些用户修改父级的内容,则父级应该由其成员为这些用户的组拥有,并且该组应该具有写权限:
addgroup bigguys
chgrp bigguys /the/parent/dir
chmod 775 /the/parent/dir