Защитить перезапись содержимого папки

Защитить перезапись содержимого папки

Есть ли способ (с помощью acl) защитить содержимое папки? Пользователи должны создавать файлы внутри папки, но не перезаписывать/редактировать/удалять их. Возможно ли это?

решение1

Можно использовать inotifywaitдля наблюдения за каталогом и внесения изменений, таких как смена владельца каждого нового файла, копируемого в каталог. В дистрибутиве на основе Debian установите программное обеспечение следующим образом: apt-get install inotify-tools.

Создайте сценарий, возможно /usr/local/sbin/inbox.sh, следующим образом.

#!/usr/bin/env bash
inotifywait -m -e create "/path/to/directory" |
while read path event file; do
    if [ "$event" = "CREATE" ]; then
        chown root:root "$path$file"
    fi
done

Дайте скрипту разрешение на выполнение ( chmod 0700 /usr/local/sbin/inbox.sh). Затем запустите его во время загрузки, скажем, из /etc/rc.localили любого подходящего RC-файла: /usr/local/sbin/inbox.sh &.

Согласноруководство, -mотслеживает бесконечно и -eследит за определенным событием. Внутри whileцикла можно получить событие, например CREATE,ISDIR, которое, конечно, указывает на создание каталога. Каталоги не являются целью вопроса; таким образом, оператор ifсодержит команду отвечать только на новые файлы, которые представлены событием CREATE. pathПеременная from inotifywaitимеет завершающий символ косой черты, поэтому $pathи $fileможно объединять без указания косой черты между ними.

Связанный контент