Я использую logcheck для отслеживания файлов журналов, но вместо получения отчетов по электронной почте я хочу отправить их за пределы с помощью сценария bash.
Итак, я использовал -o:
sudo -u logcheck /usr/sbin/logcheck -o 2>&1 | myscript with curl
, но получаю следующее ошибка:
Ошибка: не удалось запустить журнал или сохранить вывод.
После некоторого теста я увидел, что пользователь logcheck не имеет разрешения на чтение файлов журнала, даже если он является частью группы adm.
Конечно, logcheck не может быть запущен как пользователь root или пользователь с привилегиями root.
Кто-нибудь использует этот пакет и может мне помочь?
Centos 7 с logcheck от 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
На самом деле нам не нужно менять владельца каких-либо файлов в /var/log.
Я столкнулся с той же проблемой:
sudo -u logcheck logcheck -o -t
Error: Could not run logtail or save output.
Я попытался предоставить пользователю разрешение logcheck на файлы в каталоге /var/log, используя список доступа, и у меня это сработало.
# setfacl -R -m u:logcheck:rwx /var/log/secure*
# setfacl -R -m u:logcheck:rwx /var/log/messages*