我知道文件和目录有 +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