Назад | Перейти на главную страницу

Фильтрация сообщений rsyslog по пользователю

Есть ли способ фильтровать сообщения, отправляемые в rsyslog, по идентификатору пользователя? Скажем, я хочу убедиться, что только сообщения, отправленные root, должны регистрироваться в отдельном файле (на основе правил rsyslog), а сообщения, созданные непривилегированными пользователями (например, с использованием утилиты logger), будут отброшены.

Да, по крайней мере, для сообщений, поступающих из журнала SystemD.

Изменить load="imuxsock" линия в /etc/rsyslog.conf кому:

module(load="imuxsock" SysSock.Annotate="on" SysSock.ParseTrusted="on")

Добавить в конфигурацию системного журнала:

if $!uid == '0'  then /var/log/root.log
if $!uid == '33' then /var/log/www-data.log

Я узнал это Вот.

По желанию: если вы хотите добавить «классический» сокет системного журнала Unix в качестве входа (не TCP), добавьте это под строкой «модуль»:

input(type="imuxsock" Socket="/dev/rsyslog" Annotate="on" ParseTrusted="on")

В $!uid также будет работать для сообщений, записываемых в этот сокет системного журнала.

Не могу проверить это прямо сейчас, но разве не должна работать такая строка в файле /etc/rsyslog.conf?

root.*                        -/var/log/root_messages.log