Как правильно уведомлять системного администратора о каждом подключении и отключении пользователя?

Как правильно уведомлять системного администратора о каждом подключении и отключении пользователя?

Чтобы следить за машиной, я хотел бы получать уведомления, например, по электронной почте каждый раз, когда какой-либо пользователь подключается к машине или отключается от нее (даже root)?

Это машина с Linux, но мне также интересно, есть ли общий способ и для BSD.

Я администратор машины, но есть и другие администраторы.

Спасибо!

решение1

Вы, возможно, могли бы взломать что-то сложное, используя tail -Fи , awkно самый простой способ — использовать perl, поэтому вы можете использовать File::Tailмодуль (для мониторинга соответствующего файла системного журнала) и один из многих модулей отправки почты (например, Mail::Sendили Net::SMTP) для отправки почты, когда он замечает, что пользователь вошел в систему, вышел из системы, или не смог успешно войти в систему, или любое другое событие, о котором вы хотите быть уведомлены.

Модуль File::Tailсодержит примеры скриптов, которые уже выполняют около 90% того, что вам нужно. Их можно легко адаптировать в соответствии с вашими конкретными потребностями.

Точный файл журнала, который нужно отслеживать, зависит от дистрибутива, например, в Debian вы будете отслеживать /var/log/auth.log, в некоторых других дистрибутивах это будет /var/log/syslogили /var/log/messages.

Обратите внимание, что в freebsd perl не установлен по умолчанию, но он доступен, например, с помощью pkg add perl5.22. Это устанавливает только базовый язык perl, вам придется использовать CPAN для установки библиотечных модулей, таких как File::Tailpr Mail::Send.

Связанный контент