Gostaria de dar permissões de usuário para criar e ler arquivos em um diretório específico, mas não para modificar ou excluir arquivos. Se o usuário puder anexar aos arquivos, tudo bem, mas prefiro não. Isso é no Ubuntu Linux.
Eu acho que isso é impossível com permissões de arquivo Unix padrão, mas talvez isso seja possível usando ACLs? O usuário sempre estará se conectando usando SFTP; portanto, se houvesse alguma maneira de controlar isso no SFTP (ao contrário das permissões do SO), tudo bem.
Para ser absolutamente claro, quero o seguinte:
- echo hello> test # é bem-sucedido, porque o teste não existe e a criação é permitida
- echo hello >> test # pode ter êxito ou falhar, dependendo se o acréscimo é permitido
- echo hello2> test # falha, porque o teste já existe e a modificação não é permitida
- teste de gato # foi bem-sucedido, porque leituras são permitidas
- rm test # falha, porque a exclusão não é permitida
Se você está se perguntando por que eu quero fazer isso, é para tornar um sistema de backup Duplicati resistente ao Ransomware.
echo > test
, o shell faz umopen("test", O_WRONLY|O_CREAT|O_TRUNC)
que cria o arquivo e depois invocaecho
que grava o conteúdo para modificá-lo. Agora você pode permitir que apenas a primeira abertura (WR) seja bem-sucedida.