Vorrei concedere a un utente le autorizzazioni per creare e leggere file in una directory specifica, ma non per modificare o eliminare i file. Se l'utente può aggiungere file, va bene, ma preferirei di no. Questo è su Ubuntu Linux.
Penso che questo sia impossibile con le autorizzazioni standard per i file Unix, ma forse questo è possibile usando gli ACL? L'utente si connetterà sempre tramite SFTP, quindi se ci fosse un modo per controllarlo all'interno di SFTP (al contrario delle autorizzazioni del sistema operativo), andrebbe bene.
Per essere assolutamente chiaro, voglio quanto segue:
- echo hello> test # ha esito positivo, poiché il test non esiste e la creazione è consentita
- echo hello >> test # può avere esito positivo o negativo, a seconda che l'aggiunta sia consentita
- echo hello2> test # non riesce, poiché il test esiste già e la modifica non è consentita
- cat test # ha esito positivo, poiché le letture sono consentite
- rm test # ha esito negativo, poiché l'eliminazione non è consentita
Se ti stai chiedendo perché voglio farlo, è rendere un sistema di backup Duplicati resistente al ransomware.
echo > test
, la shell fa unopen("test", O_WRONLY|O_CREAT|O_TRUNC)
che crea il file e quindi invocaecho
che scrive il contenuto in modo da modificarlo. Ora potresti consentire solo il primo open (WR) per avere successo.