我想拒绝所有应用程序对 /home/don/testdir 或其子目录中所有内容的删除权限,但不阻止创建或写入。据我所知,这在传统 ACL 中是不可能的,因为写入权限要么是全部(创建+写入+删除),要么什么都没有,我不能只拒绝删除而允许创建和写入。
我已经尝试过chattr +a
该目录,但是如果运行此命令后添加了子目录并且在该子目录中添加了文件,则它不会阻止删除该文件,例如 testdir/subdir/file.txt。
我是 AppArmor 新手。我尝试创建以下规则并将其保存为,/etc/apparmor.d/home.don.testdir
但没有成功
# Profile to prevent any process from deleting files in /home/don/testdir
profile prevent-delete {
# Allow read, write, and execute within the directory
/home/don/testdir/ rix,
/home/don/testdir/** rwlix,
# Explicitly deny delete operations
deny /home/don/testdir/** D,
}
我在配置文件 /etc/apparmor.d/home.don.testdir 的第 9 行收到 /etc/apparmor.d/home.don.testdir 的 AppArmor 解析器错误:语法错误,意外的 TOK_ID,预期的 TOK_MODE。