Я хотел бы сделать файл журнала доступа apache доступным для чтения www-data (пользователем, работающим на веб-сервере), чтобы я мог обслуживать его по HTTPS, чтобы избавить меня от проблем с подключением SSH к серверу каждый раз, когда я хочу его проверить.
Я попытался chmod o+r access.log
, но кажется, что разрешения автоматически сбрасываются на -rw-r----- 1 root adm
.
В случае, если вы запускаете logrotate, который также устанавливает разрешения для новых файлов журнала, это может быть хорошим местом для внесения изменений. Например, это логротация apache2 по умолчанию на сервере Ubuntu.
andreas@halleck:~$ sudo cat /etc/logrotate.d/apache2
/var/log/apache2/*.log {
weekly
missingok
rotate 52
compress
dateext
delaycompress
notifempty
create 640 root adm
sharedscripts
postrotate
if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then
/etc/init.d/apache2 reload > /dev/null
fi
endscript
}
Как видите, есть настройка под названием create? Не стесняйтесь изменить его на любой режим и право собственности, которые вы хотите иметь для новых файлов журнала. Кроме того, вот как опция создания описана в man-файле logrotate (8).
создать группу владельцев режима
Сразу после ротации (до запуска сценария postrotate) создается файл журнала (с тем же именем, что и у только что повернутого файла журнала). mode задает режим для файла журнала в восьмеричном формате (то же, что и chmod (2)), владелец указывает имя пользователя, которому будет принадлежать файл журнала, а группа указывает группу, к которой будет принадлежать файл журнала. Любой из атрибутов файла журнала может быть опущен, и в этом случае эти атрибуты для нового файла будут использовать те же значения, что и исходный файл журнала для пропущенных атрибутов. Этот параметр можно отключить с помощью параметра nocreate.
Я получил это, изменив владельца файла (который, похоже, не сбрасывается автоматически). Это правильный путь?