Linux:创建文件和目录但不删除它们

Per*_*raz 3 linux permissions

我有一个在工作目录中创建目录和文件的过程,例如:

/workingdir/file1
/workingdir/file2
/workingdir/dir1/file1
/workingdir/dir1/dir2/file1
/workingdir/dir1/file2
Run Code Online (Sandbox Code Playgroud)

我需要避免删除/覆盖为该用户创建的文件夹/文件,但允许创建后续文件夹/子文件夹/文件。我尝试了权限、gid、acl,但没有成功。

正确的方法是什么?(如果需要,我可以使用 cron 作业)

use*_*517 6

您应该能够通过使用chattr设置扩展属性来实现某些目标。

\n\n

chattr +a在您的目录上使用。这将允许添加它们,但会阻止它们删除文件。

\n\n

用于chattr +i 使您的文件不可变 - 一旦设置,它们就无法更改。

\n\n
\n

设置了 \xe2\x80\x98a\xe2\x80\x99 属性的文件只能在附加模式下打开以进行写入。只有超级用户或拥有 CAP_LINUX_IMMUTABLE 功能的进程才能设置或清除此属性。

\n\n

无法修改具有 \xe2\x80\x98i\xe2\x80\x99 属性的文件:无法删除\n 或重命名该文件,无法创建到该文件的链接,也无法向该文件写入数据。只有超级用户或拥有 CAP_LINUX_IMMUTABLE 功能的进程才能设置或清除此属性。

\n
\n