Я использовал это в течение долгого времени, но только для того, чтобы получать простое предупреждение, когда кто-то входит в систему. Теперь я хочу расширить это, чтобы показать порт пересылающего туннеля s sh, так как он будет меняться с каждый логин. Сценарий вызывается в /etc/pam.d/sshd
:
session optional pam_exec.so seteuid /opt/ssh-notify.sh
Вот сценарий:
#!/bin/bash
sender="myalerts@somemail.com"
recepient="me@mymail.com"
if [ "$PAM_TYPE" != "close_session" ]; then
subject="$PAM_USER from $PAM_RHOST"
message="Port = $(lsof -i4 -n | egrep 'LISTEN' | egrep 'userfoobar' | sed 's/[^:]*: *//; s/ .*//')"
echo -e "Subject: $subject\n$message" | msmtp $recipient
fi
Проблема: во время выполнения сценария туннель не готов. Так что в $ message нет порта. Есть ли другой подход?