SSHを介してLinuxサーバーに接続しているユーザーがActive Directory(Centrify)を使用して認証されていることを確認しようとしています。
彼がローカルアカウント(場所/etc/passwd
)を使用している場合は、Active Directoryアカウントを使用するように警告し、再度ログインするように求められます。
私の最初の試みは、PAMモジュールpam_scriptを使用して、ユーザーがログインした/etc/pam.d/login
ときに現在のユーザー名が/ 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
ただし、SSHを使用しても同じシナリオが発生します/etc/pam.d/sshd
。スクリプトは実行されますが、テキストまたはログインプロンプトは表示されません。
どんなアイデアがありますか?ありがとう
ベストアンサー1
広告を介して接続されているかローカルに接続されているかを確認するのは比較的使いid
やすいです/etc/passwd
。次のステップは、/etc/profile
警告メッセージをエクスポートする機能を備えています。