我有一个在工作目录中创建目录和文件的过程,例如:
/workingdir/file1
/workingdir/file2
/workingdir/dir1/file1
/workingdir/dir1/dir2/file1
/workingdir/dir1/file2
Run Code Online (Sandbox Code Playgroud)
我需要避免删除/覆盖为该用户创建的文件夹/文件,但允许创建后续文件夹/子文件夹/文件。我尝试了权限、gid、acl,但没有成功。
正确的方法是什么?(如果需要,我可以使用 cron 作业)
您应该能够通过使用chattr设置扩展属性来实现某些目标。
\n\nchattr +a在您的目录上使用。这将允许添加它们,但会阻止它们删除文件。
用于chattr +i 使您的文件不可变 - 一旦设置,它们就无法更改。
\n\n设置了 \xe2\x80\x98a\xe2\x80\x99 属性的文件只能在附加模式下打开以进行写入。只有超级用户或拥有 CAP_LINUX_IMMUTABLE 功能的进程才能设置或清除此属性。
\n\n无法修改具有 \xe2\x80\x98i\xe2\x80\x99 属性的文件:无法删除\n 或重命名该文件,无法创建到该文件的链接,也无法向该文件写入数据。只有超级用户或拥有 CAP_LINUX_IMMUTABLE 功能的进程才能设置或清除此属性。
\n
| 归档时间: |
|
| 查看次数: |
11203 次 |
| 最近记录: |