我有一个在工作目录中创建目录和文件的过程,例如:
/workingdir/file1
/workingdir/file2
/workingdir/dir1/file1
/workingdir/dir1/dir2/file1
/workingdir/dir1/file2我需要避免删除/覆盖为该用户创建的文件夹/文件,但允许随后创建文件夹/子文件夹/文件。我尝试权限,gid,acl,但没有运气。
正确的方法是什么?(如果需要的话,我可以使用cron工作)
发布于 2012-10-02 07:58:34
您应该能够通过使用查特设置扩展属性来实现某些目标。
在目录上使用chattr +a。这将允许他们被添加到,但将阻止他们的文件被删除。
使用chattr +i使您的文件不可变-一旦设置好它们就不能更改。
只有在附加模式下才能打开具有“a”属性集的文件。只有超级用户或拥有CAP_LINUX_IMMUTABLE功能的进程才能设置或清除该属性。不能修改具有“i”属性的文件:不能删除或重命名该文件,不能创建指向该文件的链接,也不能将数据写入文件。只有超级用户或拥有CAP_LINUX_IMMUTABLE功能的进程才能设置或清除该属性。
发布于 2012-10-02 07:51:00
这在标准的POSIX unix文件权限中是不可能的。
您能完成的最好的工作是创建一个目录,用户可以删除他们拥有的任何文件,但不能删除其他用户的文件。
chmod 1775 /directory更新:您可以使用SELinux或Apparmor获得更好的控制,但通过这种方法,您必须为文件上的进程授予权限。
更新:您可以选择对单独的文件使用系统只追加标志。不是所有文件系统: chattr +一个文件名
https://serverfault.com/questions/433934
复制相似问题