Je voudrais donner à un utilisateur des autorisations pour créer et lire des fichiers dans un répertoire particulier, mais pas pour modifier ou supprimer des fichiers. Si l'utilisateur peut ajouter des fichiers, c'est correct, mais je préfère ne pas. C'est sur Ubuntu Linux.
Je pense que cela est impossible avec les autorisations de fichier Unix standard, mais peut-être est-ce possible en utilisant des ACL? L'utilisateur se connectera toujours à l'aide de SFTP, donc s'il y avait un moyen de contrôler cela dans SFTP (par opposition aux autorisations du système d'exploitation), ce serait bien.
Pour être absolument clair, je veux ce qui suit:
- echo hello> test # réussit, car le test n'existe pas et la création est autorisée
- echo hello >> test # peut réussir ou échouer, selon que l'ajout est autorisé
- echo hello2> test # échoue, car le test existe déjà et la modification n'est pas autorisée
- cat test # réussit, car les lectures sont autorisées
- rm test # échoue, car la suppression n'est pas autorisée
Si vous vous demandez pourquoi je veux faire cela, c'est pour rendre un système de sauvegarde Duplicati résistant à Ransomware.
echo > test
, le shell fait unopen("test", O_WRONLY|O_CREAT|O_TRUNC)
qui crée le fichier, puis invoqueecho
qui écrit le contenu afin de le modifier. Vous pouvez maintenant autoriser uniquement la première ouverture (WR) à réussir.