我正在尝试检查通过SSH连接到Linux服务器的用户是否使用Active Directory(Centrify)进行身份验证 .
如果他使用本地帐户(位于 /etc/passwd
),我需要显示一条警告,要求他使用他的Active Directory帐户,然后再次提示登录 .
我的第一次尝试是使用 /etc/pam.d/login
中的PAM模块pam_script执行一个脚本,每当用户登录时检查当前用户名是否存在于/ etc / passwd中,如果找到则显示警告并再次调用 login
命令 .
我将以下行添加到 /etc/pam.d/login
session required pam_script.so runas=root
该行执行位于 /etc/security/onsessionopen
的脚本文件,其中包含:
#!/bin/sh
username=$1
if [ $(grep -c '^'$username':' /etc/passwd) = 1 ]
then
echo "Warning, please user your AD credentials"
login
fi
但是同样的情况在 /etc/pam.d/sshd
中无效 . 使用SSH时,脚本会运行但不显示文本或提示登录 .
有什么想法吗 ?谢谢