Судя по тому, как вы отметили вопрос, вы используете среду в стиле Redhat. Предполагая, что вы используете стандартную установку Apache httpd, вы, вероятно, за кулисами имеете дело с logrotate. По умолчанию logrotate выполняется ежедневно из /etc/cron.daily. Он переместит ваши текущие файлы журналов, создаст новые и перезапустит httpd таким образом, что он начнет использовать только что созданные пустые файлы журнала.
Проверять /etc/logrotate.d/httpd. Например, стоковая версия показывает:
/var/журнал/httpd/*журнал {
отсутствует
непустой
общие скрипты
задержка сжатия
постротировать
/bin/systemctl перезагрузить httpd.service > /dev/null 2>/dev/null || истинный
эндскрипт
}
Если вы добавите такую строку в фигурные скобки, logrotate правильно повернет и заново создаст ваши файлы журнала с правильным владельцем и членством в группе:
создать 0640 корневых разработчиков
Это указывает logrotate на создание новых файлов журнала с корень как владелец, разработчики как группа, с правами владельца на чтение/запись и чтение группы.
Затем вы можете установить свой каталог журнала httpd с разрешениями и правами собственности следующим образом:
корень chown:devs /var/log/httpd
chmod 0750 /var/журнал/httpd
В первый день вы также можете вручную установить разрешения для файлов журналов, и logrotate заработает в следующие дни:
корень chown:devs /var/log/httpd/*log
chmod 0640 /var/журнал/httpd/*журнал
Вы можете пофантазировать с ACL, как продемонстрировал @KuchnMar выше, но это решение делает вещи простыми и совместимыми с различными типами файловых систем * nix.
Это может быть похоже на хост в стиле Debian, но ваш файл конфигурации logrotate может называться апач2 вместо.
Более подробную информацию можно найти здесь: