LINUX.ORG.RU
ФорумAdmin

Права на создаваемые файлы разными службами.

 


0

0

У меня есть файлы логов, в которые пишут записи две службы: apache, django debug server, относительно настроек python.logging, запущенные от разных пользователей www-data/myuser соответственно.

Я создал папочку, куда писать логи, /var/log/folder, назначил права и владельцев

chmod -R 660 /var/log/folder, chown -R myuser:www-data /var/log/folder

В настройках python.logging у меня есть пересоздание файла относительно размера файла, т.е. если лог достиг 3МБ создаётся его бэкап с суффиксом N и создаётся новый чистый лог, куда эти службы пишут свежие логи.

При создании нового чистого файла логов возникает следующая проблема: при создании нового файла ему присваиваются права и владельцы этой службы, но не те, которые я назначил изначально и вторая служба по этой причине уже не может писать логи во вновь созданный файл.

Возможно ли как-то изначально указать статические права/владельцев на эту папку таким образом, чтобы службы , которые создают файлы логов внутри неё подхватывали эти настройки , а не присваивали свои???

Или может есть какой-то «бэст практис» под такую ситуацию , подразумевающий иной подход по созданию и разграничению прав на файлы от разных процессов?

У тебя проблема что два разных юзера пишут в одну папку. Тут два пути решения проблемы: дать возможность создавать файлы обоим юзерам (например, поместив их в общую группу и отдать этой группе каталог), либо ротацию логов делать внешними средствами которые будут создавать новый пустой файл с нужными правами.

Ну и есть ещё тяжёлая артиллерия в виде ACL. Я думаю, не стоит до этого доходить.

true_admin ★★★★★ ()
Ответ на: комментарий от true_admin

Проблему я понимаю, я ищу способ решения приемлемый =)

1) Поместить их в общую группу и отдать этой группе каталог. Я так и сделал, но там следующий нюанс всплывает: процесс1(apache) запущен под www-data:www-data процесс2(django debug server) запущен под myuser:myuser

Пользователь myuser входит в группу www-data(www-data НЕ входит в группу myuser, у меня нет желания его туда совать, это неверно на мой взгляд)

Права и владельцы на папку написаны в первом посте.

Теперь две ситуации: -Текущий лог перезаполнил процесс1, он же по настройкам логирования создаёт новый файл лога, внутри указанной папки,НО уже со своими правами/владельцами, а именно 660/www-data:www-data(тут я пошаманил, меня это устраивает, процесс2 в такой файл писать сможет) -Текущий лог перезаполнил процесс2,делает то же самое,НО уже со своими правами/владельцами, а именно 660/myuser:myuser. Писал чуть выше www-data не входит в myuser. И вот тут процесс1 уже не может писать в этот лог.

Очевидно напрашивается вывод добавить www-data в группу myuser, но как то интуитивно не охота...

2) Я так не умею делать , это как? Это может быть решением , но не очевидным(очевидная настройка ротации у меня в питоновском модуле прописана)...

second_buddha ()

а наследование родительских прав от каталога не должно помочь в решении этой проблемы?

bvn13 ★★★★★ ()
Ответ на: комментарий от second_buddha

Смени группу у файла чтобы была www-data. Что-то вроде os.chown

true_admin ★★★★★ ()
Ответ на: комментарий от second_buddha

О, ещё есть sticky bit на папку. Тогда группа созданных файлов будет наследоваться от папки. Короче, выбирай...

true_admin ★★★★★ ()
Ответ на: комментарий от bvn13

Как раз то, о чем я думал, но не знал как делать....

Это и есть sticky bit, как написал true_admin?

second_buddha ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.