您好,我一直在尝试从这里跟踪有关 pam_exec 的信息: ssh登录挂钩?
当用户登录时,他们会得到:
/etc/pam.d/email-alert.sh failed: exit code 8
我的 sshd 文件末尾有这样的内容:
session optional pam_exec.so debug seteuid /etc/pam.d/email-alert.sh
我的 email-alert.sh 脚本有这个,
echo 'ALERT - Remote SSH Shell Access (SERVERNAME) on:' `date` `who` |
mail -s "Alert: Remote SSH Access from `who |
cut -d'(' -f2 | cut -d')' -f1`" [email protected]
我已经单独测试了该脚本,它向我发送电子邮件没有问题。
如果有人能指出我正确的方向,我将不胜感激,因为我一直在绞尽脑汁试图找出答案。
答案1
首先,shell 脚本将返回最后一个命令的退出状态。您正在使用的命令之一是以 status 退出8
。其次,pam_exec
不会有和你一样的环境。因此,手动运行时的行为不一定与作为 pam 堆栈的一部分运行时的行为方式(您正在经历的情况)。
pam_exec
有几个内置的环境变量可以帮助您。我会像这样重写脚本:
#!/bin/bash
PATH=/bin:/usr/bin
SUBJ="Alert - Remote SSH access from ${PAM_USER}"
mail -s $SUBJ << __MESSAGE__
ALERT - Remote SSH Shell Access (${HOSTNAME}) on $(date)
User ${PAM_USER} logged in from ${PAM_RHOST}
$(who)
__MESSAGE__