Я использую logcheck для отслеживания файлов журналов, но вместо получения отчетов по электронной почте я хочу отправлять их на улицу с помощью сценария bash.
Итак, я использовал -o:
sudo -u logcheck /usr/sbin/logcheck -o 2>&1 | myscript with curl
но я получаю следующую ошибку:
Ошибка: не удалось запустить журнал или сохранить вывод.
После некоторого теста я увидел, что пользователь logcheck не имеет разрешения на чтение файлов журнала, даже если он является частью группы adm.
Конечно, logcheck не может быть запущен как пользователь root или пользователь с привилегиями root.
Кто-нибудь пользуется этим пакетом и может мне помочь?
Centos 7 с регистрацией от epel.
Использовать logcheck
без прав root вам необходимо убедиться, что logcheck
пользователь находится в adm
группа (как вы уже обнаружили).
Кроме того, в Centos и, возможно, других дистрибутивах на основе Redhat вам необходимо убедиться, что файлы журналов принадлежат группе adm
, т.е. выполнить chgrp adm
в этих файлах журнала и сделайте файлы журнала доступными для чтения группой (chmod g+r
). Сделав это один раз, logrotate
должен воссоздать файлы журнала с тем же владельцем / группой / разрешениями, что и повернутые файлы, чтобы сохранить ваши изменения. Если это не так, убедитесь, что create
вариант в /etc/logrotate.conf
и /etc/logrotate.d/*
не имеет дополнительных параметров, которые переопределяли бы исходные значения.
В дополнение к ответу, опубликованному @wurtel, logcheck должен написать .offset
файлы. Нам нужно создать их и сделать их доступными для чтения и записи только для пользователя logcheck:
touch /var/log/messages.offset
chmod 600 /var/log/messages.offset
chown logcheck /var/log/messages.offset
touch /var/log/secure.offset
chmod 600 /var/log/secure.offset
chown logcheck /var/log/secure.offset