私が達成したいのは、ユーザーにパスワードを要求する前または後に実行する対話型プログラムですが、成功して終了しない限り、コンピューターへのアクセスを処理しません。少しわかりやすくするために、以下に例を示します。
最初にユーザー名を書き、次にパスワードを書き、その後ランダムに生成された簡単な数学の質問に正しく答えることで、コンピューターにアクセスしたいと思います。
これを機能させるには、次のsystem-authファイルを使用します。
auth      required  pam_unix.so try_first_pass nullok nodelay
auth      optional  pam_faildelay.so delay=600000
auth      optional  pam_exec.so stdout /home/math
auth      optional  pam_permit.so
auth      required  pam_env.so
問題は、mathという名前のプログラムはユーザーからの入力を処理できないことです。これは、PAMからEOFを自動的に読み取るため、本質的に役に立たなくなるためです。私はまた、疑わしい行の次のバリアントを試しました。その場合、パスワードが読み取られますが、これも私が望んでいるものではありません。
auth      optional  pam_exec.so stdout expose_authtok /home/math
          
                
                2
              
                  独自のPAMモジュールをコード化したいようですが、詳細はPAMマニュアルを参照してください。linux-pam.org/Linux-PAM-html/Linux-PAM_MWG.html
                
                
                  
                    —
                    Drav Sloan