Ubuntu 18.04. Уведомление админа об авторизации пользователя по ssh/sftp через PAM

Задача: после каждой авторизации пользователя root по SSH/SFTP слать уведомление админу на почту с ip адресом пользователя.
Для определения входа используем PAM.
Ip адрес буду брать из /var/log/auth.log как последние 10 строк.

В файл /etc/pam.d/common-auth добавить строку

auth    optional     pam_exec.so /bin/login-notify

Создаём файл /bin/login-notify и вставляем:

#!/bin/bash
exec /root/root-auth-sender.sh &

Из /etc/pam.d/common-auth нельзя запустить скрипт из произвольных папок (у меня не получилось). Поэтому помещаем скрипт-враппер в папку /bin или /usr/bin и уже из него запускаем внешний наш скрипт.
Зачем запускать скрипт в фоне через &?
Запись в лог /var/log/auth.log об успешной авторизации происходит после выполнение скрипта /bin/login-notify, поэтому необходимо выждать какую нибудь паузу, например 1 сек., и уже потом считать из него последние несколько строк с ip адресом последнего авторизованного пользователя.

Содержимое файла /root/root-auth-sender.sh

#!/bin/bash

PATH=/bin:/usr/bin
MAILTO="root@localhost"
MAILFROM="root@localhost" 

sleep 1

if [ $PAM_USER == "root" ]; then
     CURDATE=`date +%Y-%m-%d_%H:%M:%S`
     TAILLOG=`tail -10 /var/log/auth.log`
     echo "${CURDATE} root user auth via ssh/sftp

tail -10 /var/log/auth.log 
${TAILLOG}" | mutt -s "root user auth" -e 'my_hdr From: rootAuth <${MAILFROM}>' -- $MAILTO

fi

Для отправки письма с сервера должен быть настроен почтовый сервер и установлен mutt. Так же проставить флаг запуска +x на обоих созданных файлах:

chmod +x /bin/login-notify
chmod +x /root/root-auth-sender.sh 

Пример получаемого письма:

2020-01-17_16:44:51 root user auth via ssh/sftp

 tail -10 /var/log/auth.log
 Jan 17 16:41:01 s1 CRON[18635]: pam_unix(cron:session): session closed for user root
 Jan 17 16:42:01 s1 CRON[18656]: pam_unix(cron:session): session opened for user root by (uid=0)
 Jan 17 16:42:01 s1 CRON[18656]: pam_unix(cron:session): session closed for user root
 Jan 17 16:43:01 s1 CRON[18675]: pam_unix(cron:session): session opened for user root by (uid=0)
 Jan 17 16:43:02 s1 CRON[18675]: pam_unix(cron:session): session closed for user root
 Jan 17 16:44:01 s1 CRON[18696]: pam_unix(cron:session): session opened for user root by (uid=0)
 Jan 17 16:44:01 s1 CRON[18696]: pam_unix(cron:session): session closed for user root
 Jan 17 16:44:50 s1 sshd[18715]: Accepted password for root from 192.168.56.1 port 62529 ssh2
 Jan 17 16:44:50 s1 sshd[18715]: pam_unix(sshd:session): session opened for user root by (uid=0)
 Jan 17 16:44:50 s1 systemd-logind[1114]: New session 2392 of user root.

Как видно из письма скрипт запустился в 16:44:51, а авторизация в логе прошло в 16:44:50 — разница в 1 сек. Всё правильно.