Sim, você pode com recursos por processo em Linux aprimorado por segurança , que faz parte do Ubuntu para o últimos dois anos. Prepare-se para uma curva de aprendizado íngreme.
Eu tenho um aplicativo que cria arquivos temporários e os exclui rapidamente. Mas eu gostaria de manter esses arquivos, existe uma maneira de fazer isso no Linux?
Sim, você pode com recursos por processo em Linux aprimorado por segurança , que faz parte do Ubuntu para o últimos dois anos. Prepare-se para uma curva de aprendizado íngreme.
Eu encontrei uma solução boa o suficiente com o uso de sticky bit e inotify combinados. A idéia é simples: se definirmos um bit em um diretório, os usuários não poderão remover arquivos pertencentes a outros usuários, mas ainda poderão gravar para eles se as permissões de um arquivo forem definidas corretamente.
Então, fazemos o seguinte:
$ chmod a+t dir
$ while inotifywait -e close_write dir; do chmod a+rwx dir/*; sudo chown root:root dir/*; done
A primeira linha define um bit pegajoso. O segundo constantemente espera por mudanças em nosso diretório e, assim como o aplicativo termina de gravar em um arquivo, ele permite que todos os usuários o acessem e, em seguida, altera o proprietário desse arquivo. O proprietário não precisa ser root, ele também funciona com qualquer outro usuário.
Então, no final, acabamos com arquivos graváveis que o aplicativo não pode excluir. Exatamente o que eu precisava.