Возможно ли, используя схему разрешений linux, разрешать пользователям создавать файлы, но не редактировать и не удалять их позднее? Я имею в виду, что у нас есть папка доставки, в которую пользователи помещают артефакты, и мы не хотим, чтобы эти артефакты были изменены после доставки, т.е. отредактированы или удалены.
linux
permissions
synchronization
Жиль "ТАК - перестань быть злым"
источник
источник
Ответы:
Вы не можете этого сделать: если пользователь может создавать файлы, они будут принадлежать ему, и он сможет их изменять и стирать.
Я собирался предложить простую схему, чтобы иметь промежуточный каталог (где пользователь может делать то, что он хочет) и входящий каталог (недоступный для пользователя) с небольшой привилегированной программой для перемещения файлов из промежуточного каталога во входящий каталог. Но на самом деле это сложно сделать правильно: помимо всего прочего вам нужно позаботиться о том, чтобы привилегированная программа не перемещала файлы в другие каталоги (остерегаясь условий гонки, символических ссылок
../
), не перезаписывала существующие файлы (rename(3)
атомарно, но может стереть место назначения), не позволит пользователю держать дескриптор файла открытым и изменять файл после его перемещения (поэтому лучше скопировать, чем переместить). Вместо этого я рекомендую взять существующее надежное решение:источник
НЕТ
Но у вас есть другие варианты, предложенные @Fredrik в комментарии к вашему вопросу. Посмотреть здесь.
источник
Вот подход, который теоретически должен работать. Для меня слишком много усилий, чтобы разработать даже доказательство концепции; Вы можете отклонить его по той же причине. И, строго говоря, это не «использование схемы разрешений Linux».
/mnt/delivery
и попросите пользователей поместить туда свои файлы.источник
Простой ответ состоит в том, чтобы запускать сценарий с заданным интервалом, который вы выбираете (скажем, каждые 15 минут), который переназначает владение всеми файлами в каталоге «upload» заранее определенному пользователю «admin» и устанавливает права доступа «644». Это позволит всем пользователям доступ только для чтения ко всем файлам в каталоге загрузки, включая те, которые они загрузили сами. Конечно, вы можете оптимизировать скрипт после первого запуска, чтобы искать только те файлы с датами создания после предыдущего запуска скрипта (скажем, за последние 17 минут).
источник