我正在尝试检查通过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时,脚本会运行但不显示文本或提示登录 .

有什么想法吗 ?谢谢