У меня есть папка, в которую несколько пользователей записывают и редактируют файлы, проблема в том, что файлы используются приложением, и для запуска этого приложения ему необходимы разрешения (чтение и запись), но отредактированные файлы принадлежат пользователю, который его редактировал. перед запуском программы она настраивалась с помощью скрипта, но файлы были слишком большими, и его жесткая работа позволяла жесткому диску устанавливать разрешения для файлов размером 100 Кб каждый раз, когда я хочу запустить свое приложение. Любая работа вокруг?
1 ответ
Есть два подхода:
"Классический" использует так называемый групповой липкий бит:
В Linux "липкий бит группы", установленный в каталоге, устанавливает для всех файлов, созданных в этом каталоге, группу владельцев, равную той, которая содержится в каталоге, в отличие от основной группы пользователя, которая используется по умолчанию.
Вот как это сделать:
- Добавьте всех пользователей в выделенную группу.
- Установите группу владельцев в этом каталоге в эту новую группу.
- Измените разрешения для этого каталога, включив в него
g=rwxs
то есть включите залипание группы, одновременно предоставив членам этой группы "разумный" доступ. - Сделайте так, чтобы у каждого пользователя было значение
umask
процесса, который они используют для редактирования этих файлов, не маскируйте биты разрешений группы - то есть,002
или007
- это нормально, но022
- нет, поскольку это сделало бы, чтобы файлы, созданные в каталоге, имелиg-w
в своих биты разрешения, следовательно, мешают другим пользователям редактировать файлы.
См. "Демистифицированные разрешения файловой системы Linux" для получения дополнительной информации.
Используйте POSIX ACL для точной настройки прав доступа.
Это часто забытое место, но с тех пор Debian поставляется с этой функцией, включенной по умолчанию в ядре и в файловых системах, которые его поддерживают.
Вы можете начать с этого.