に渡す方法を知っていますが、/etc/profile
ログインが成功した後にのみ実行されます。ログインに失敗しても操作を実行できるようにしたいと思います。たとえば、スクリプトを実行しますscript.sh
。
で設定できると思いますが、pam
どこから始めるべきかわかりません。
ベストアンサー1
pam_exec
モジュールといくつかのトリックを使用してPAM
これを行うことができます。PAM
構成はディストリビューションによって大きく異なる場合が多いため、構成を理解して調整する必要があります。
Debianの場合(7.1でテスト済み)編集/etc/pam.d/common-auth
(明確にするためにコメントは省略)
今後
auth [success=1 default=ignore] pam_unix.so nullok_secure auth requisite pam_deny.so auth required pam_permit.so
後ろに
auth [success=2 default=ignore] pam_unix.so nullok_secure auth optional pam_exec.so /common-auth-pam_exec auth requisite pam_deny.so auth required pam_permit.so
実際に起こるのは、成功するpam_unix.so
と次の2つのモジュールをスキップし、常にpam_permit.so
成功したモジュールにジャンプすることです。認証に失敗した場合は、PAM
まずスクリプトを実行してから実行してください。このモジュールは常に失敗し、制御フラグをpam_deny
設定するため、他のモジュールは実行されません。requisite
完全性のために、プログラムはpam_exec
呼び出しプロセスの実際のユーザーIDで実行することによって生成されます(setuid
オプションは有効なユーザーIDで実行されます)、プロセス環境は次のとおりです。
PAM_SERVICE=login
PAM_RHOST=
PAM_USER=<username_here>
PAM_TYPE=auth
PAM_TTY=/dev/tty1