Quero negar permissão de exclusão para tudo o que está em /home/don/testdir ou em seus subdiretórios para todos os aplicativos, sem impedir a criação ou gravação. Pelo que entendi, isso não é possível com a ACL convencional porque a permissão de gravação é tudo (criar + gravar + excluir) ou nada, não posso negar apenas excluir enquanto permite criar e gravar.
Eu tentei chattr +a
para esse diretório, mas se depois de executar este comando o subdiretório for adicionado e nesse subdiretório o arquivo for adicionado, isso não impedirá a remoção desse arquivo, por exemplo testdir/subdir/file.txt.
Sou novo no AppArmor. Tentei criar a seguinte regra e salvá-la como /etc/apparmor.d/home.don.testdir
mas não funcionou
# 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,
}
Recebi um erro do analisador AppArmor para /etc/apparmor.d/home.don.testdir no perfil /etc/apparmor.d/home.don.testdir na linha 9: erro de sintaxe, TOK_ID inesperado, esperando TOK_MODE.
D
não é um modo de acesso conhecido e, portanto, é inválido. É por isso que sua regra não é analisada corretamente.Além disso, o AppArmor não tem o conceito de "negar exclusão" pela minha leitura das páginas de manual em seu sistema de políticas.
Você pode consultar a página de manual do AppArmor sobre estrutura de políticas (consulte https://manpages.ubuntu.com/manpages/noble/man5/apparmor.d.5.html , que é a página de manual 24.04 para saber como os perfis do AppArmor são configurados) para saber como as coisas funcionam nas políticas do AppArmor.
Estes são os modos de acesso conhecidos pelo AppArmor (cortei a maioria dos dados que não são relevantes para sua pergunta) e o que
deny
pode ser aceito como modos de acesso:O mais próximo que você chegaria de um modo "sem exclusão" seria permitir o modo de acréscimo e proibir o modo de gravação, pois o modo de gravação inclui a capacidade de exclusão.
No entanto, isso pode interromper seus aplicativos que usam esses arquivos porque nem todos os aplicativos chamam
open
syscalls ou similares com a opção APPEND habilitada.