登录完成后运行 pam_exec 脚本

登录完成后运行 pam_exec 脚本

lastlog当用户登录时,我会将命令解析为自定义文件,以便与另一个监视 SSH 登录的应用程序一起使用。

/etc/pam.d/sshd已经包含了该行和最底部:

session optional pam_exec.so seteuid /usr/local/bin/run_on_login.sh

这项工作有一个主要缺点。该脚本在之前运行/var/log/lastlog/var/log/wtmp更新。我认为是因为在运行脚本之后才认为成功登录已完成。

我试着把线放进去/etc/pam.d/login,似乎没有什么区别。

有没有办法在完整登录过程完成后运行 pam_exec 脚本(包括写入日志)?

答案1

我能够通过初始/usr/local/bin/run_on_login.sh分叉另一个作为后台进程运行的脚本,等待几秒钟,然后解析“最后”命令来解决这个问题。

例如,pam_exec 运行此脚本:

#!/bin/bash
# /usr/local/bin/run_on_login.sh

nohup /usr/local/bin/parse_last.sh >/dev/null 2>&1 &

哪个触发这个脚本:

#!/bin/bash
# /usr/local/bin/parse_last.sh

sleep 5

# (truncated for brevity)
last -iF | head -n 50 | awk '{print "something"}'

相关内容