Я хотел бы дать пользователю разрешения на создание и чтение файлов в определенном каталоге, но не изменять или удалять файлы. Если пользователь может добавлять файлы, это нормально, но я бы не стал. Это на Ubuntu Linux.
Я думаю, что это невозможно со стандартными правами доступа к файлам Unix, но, возможно, это возможно с помощью ACL? Пользователь всегда будет подключаться с использованием SFTP, поэтому, если бы был какой-то способ контролировать это в SFTP (в отличие от разрешений ОС), это было бы хорошо.
Чтобы быть абсолютно ясным, я хочу следующее:
- echo hello> test # успешно, потому что test не существует, и создание разрешено
- echo hello >> test # может быть успешным или неуспешным, в зависимости от того, разрешено ли добавление
- echo hello2> test # терпит неудачу, потому что test уже существует, и изменение не разрешено
- cat test # успешно, потому что чтение разрешено
- rm test # не пройден, так как удаление не разрешено
Если вам интересно, почему я хочу это сделать, это сделать систему резервного копирования Duplicati устойчивой к вымогателям.
echo > test
, оболочкаopen("test", O_WRONLY|O_CREAT|O_TRUNC)
создает файл, а затем вызывает его дляecho
записи содержимого, чтобы изменить его. Теперь вы можете разрешить только первое открытие (WR).