Посмотрели другие вопросы об оповещениях по электронной почте при входе в систему, но у них есть 2 вопроса:
Может ли оповещение быть инициировано пользователями, подключающимися через SFTP? (Я пробовал это раньше, и он вызывал только электронную почту при использовании SSH и без использования SFTP для удаленной передачи)
В других ответах говорилось, что оповещение по электронной почте не будет работать, если параметр -n используется через SSH, способ обойти это?
Спасибо.
По сути, я бы использовал что-то в .bashrc для запуска команды отправки почты. Используя трюки с включениями и разрешениями, вы можете сделать невозможным редактирование для пользователя (предоставить .bashrc пользователю root, включить в него .bashrc_priv, который вы дадите пользователю для его собственной конфигурации).
.bashrc, принадлежит root
# trigger mail here
[ -f "~/.bashrc_priv" ] && . ~/.bashrc_priv
.bashrc_priv, принадлежит $ USER
# Whatever you want in your users' bashrc ; they can edit this file.
Насколько я помню, SFTP запускает процесс входа в bash.
Если вы используете что-то конкретное для запуска оповещения (какой-то пакет / приложение), дайте мне знать.
Вы можете настроить это с помощью rsyslog, который вы, вероятно, используете. Он включает в себя модуль вывода для отправки электронной почты, и вы можете настроить правило для отправки по электронной почте определенного адреса, когда зарегистрированное сообщение соответствует. Вот пример:
$ModLoad ommail
$ActionMailSMTPServer mail.example.net
$ActionMailFrom example@example.net
$ActionMailTo example@example.net
$template mailSubject,"User logged into %hostname%"
$template mailBody,"RSYSLOG Alert\r\nmsg='%msg%'"
$ActionMailSubject mailSubject
$ActionExecOnlyOnceEveryInterval 60
if $msg contains 'session opened for user' then :ommail:;mailBody
Вы можете оставить это в /etc/rsyslog.d/notify.conf
, настроить его по мере необходимости, а затем запустить service rsyslog restart
. Вы должны получать сообщения электронной почты, которые выглядят следующим образом:
Date: Mon, 15 Jul 2013 2:30:01 UT
From: <example@example.net>
To: <example@example.net>
Subject: User logged into localhost
X-Mailer: rsyslog-immail
RSYSLOG Alert
msg=' pam_unix(cron:session): session opened for user root by (uid=0)'
Подробнее об этой функции можно прочитать по адресу: http://www.rsyslog.com/doc/ommail.html