Я хотів би дати користувачеві дозволи на створення та читання файлів у певному каталозі, але не змінювати чи видаляти файли. Якщо користувач може додавати файли, це нормально, але я краще не став би. Це на Ubuntu Linux.
Я думаю, що це неможливо зі стандартними дозволами на файли Unix, але, можливо, це можливо за допомогою ACL? Користувач завжди підключатиметься за допомогою SFTP, тому, якщо був би якийсь спосіб контролювати це в SFTP (на відміну від дозволів ОС), це було б добре.
Щоб було абсолютно зрозуміло, я хочу:
- echo hello> test # успішно, тому що тест не існує, і створення дозволено
- echo hello >> test # може бути успішним чи невдалим, залежно від того, чи дозволено додавання
- echo hello2> тест # не вдається, тому що тест вже існує, і модифікація заборонена
- тест на кішку # вдається, тому що читання дозволено
- rm test # не вдається, оскільки видалення заборонено
Якщо вам цікаво, чому я хочу це зробити, це зробити систему резервного копіювання Duplicati стійкою до Ransomware.
echo > test
, оболонка робить a,open("test", O_WRONLY|O_CREAT|O_TRUNC)
який створює файл, а потім викликає,echo
що записує вміст, так що модифікує його. Тепер ви могли дозволити досягти успіху лише першому відкритому (WR).