誰かがこの問題に関する洞察を提供できることを願っています。 SSHログイン前にスクリプトを実行するソリューションを見つけました。これは、/etc/pam.d/sshd に次の行を配置し、/etc/ssh/sshd_config で pam 認証を許可することによって行われます。
session required pam_exec.so /home/pc/myScript.sh
うまくいきます。私が見つけた問題は、SSHセッションを終了した後にスクリプトが再実行されることです。この特定の動作は私のスクリプトの目的を完全に崩します。この問題を解決する方法はありますか?実行時間であれば、ファイルから書き込んだり読むことができるようですが、より良い方法があるかどうか疑問に思います。
追加情報
- オペレーティングシステムはFedora Server ARM 29です。
wall
シェルスクリプトを実行して、スクリプトが2回実行されたことを確認しました。- これは私の/etc/pam.d/shhdです
。
#%PAM-1.0
auth substack password-auth
auth include postlogin
account required pam_sepermit.so
account required pam_nologin.so
account include password-auth
password include password-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
### My script
session required pam_exec.so /home/pc/aScriptThatShouldOnlyRunOncePriorToLogin.sh
###
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open env_params
session required pam_namespace.so
session optional pam_keyinit.so force revoke
session optional pam_motd.so
session include password-auth
session include postlogin
ベストアンサー1
たとえば、PAM で提供される環境変数を使用できます。$PAM_TYPE
#!/bin/sh
if [ "$PAM_TYPE" != "open_session" ]
then exit 0
else
Your script here
編集:参照:http://www.linux-pam.org/Linux-PAM-html/sag-pam_exec.html