У меня есть папка с файлами журналов, и я использую logrotate
чтобы повернуть их.
До недавнего времени у меня были только файлы журнала Apache - access.log и error.log. Я добавил новый журнал от демона, daemon.log. Журнал демона записывает демон, работающий под управлением www-data
пользователь.
Когда он бежит, logrotate
создает новый журнал с разрешениями 640
, пользователь root
и группа adm
. Apache может записывать в журналы доступа и ошибок с этими разрешениями, но мой демон, работающий как www-data
, не могу.
На мой взгляд, есть несколько вариантов:
logrotate
config, чтобы вручную указать, какие файлы журналов и какие разрешения имеют. Но это означает, что если я добавлю новый файл журнала, мне нужно будет не забыть настроить logrotate
управлять этим. logrotate
сценарий для создания исключения для файла daemon.log. Это вообще возможно?logrotate
сценарий для управления файлами журнала в этой новой папке. Достаточно просто, но я бы хотел, чтобы все мои журналы были вместе, если можно.logrotate
для создания файлов от имени другого пользователя и группы. Похоже, это может привести к потере информации журнала.www-data
пользователь к adm
group и установите разрешения для 660
. Мне не нравится идея давать www-data
непреднамеренный доступ пользователей к другим материалам.666
. Похоже на грубое решение.Ни один из них не идеален, и я почти уверен, что пара ужасных. Есть ли другой вариант, или один из них лучше всего? Я что-то упускаю?
Стандартный ответ - заставить logrotate создавать файлы с правами собственности, которые понадобятся процессу для записи в них. (Я не понимаю, почему это может привести к потере информации журнала; возможно, вы могли бы уточнить, почему вы думаете, что это риск.)
Вы делаете это, добавляя строку
create owner group
в соответствующий бит конфигурации logrotate. Если вы хотите иметь файлы с определенным разрешением, вы добавляете
create mode owner group
вместо.
Пример:
create 644 www-data www-data