首页 > 解决方案 > 使用 pam_exec 在 ssh 登录时发送电子邮件通知

问题描述

我想收到所有使用 ssh 登录到我的 ubuntu 服务器的用户的通知。

在中添加以下行/etc/pam.d/sshd

session required pam_exec.so  seteuid /usr/local/bin/ssh_alert.sh

在文件 ssh_alert.sh 中,我有以下内容

#!/bin/sh
if [ "$PAM_TYPE" != "open_session" ]
then
  exit 0
else
  {
    echo "User: $PAM_USER"
    echo "Remote Host: $PAM_RHOST"
    echo "Service: $PAM_SERVICE"
    echo "TTY: $PAM_TTY"
    echo "Date: `date`"
    echo "Server: `uname -a`"
    exec /usr/bin/python3 send_mail.py
  }
fi
exit 0

所有文件都具有适当的权限(0700)并且它们是可执行文件。

每当我登录服务器时,既不会打印变量,也不会发送邮件。

send_mail.py 在单独执行时会发送一封电子邮件。

知道出了什么问题吗?

标签: pythonshellubuntusshpam

解决方案


推荐阅读