追加のログイン手順をどのように追加しますか?

追加のログイン手順をどのように追加しますか?

私が達成したいのは、ユーザーにパスワードを要求する前後に実行されますが、コンピュータが正常に終了しない限り、コンピュータへのアクセスを処理しない対話型プログラムです。わかりやすくするために、次のようになります。

まず、ユーザー名とパスワードを入力してから、ランダムに生成された単純な数学の問題に正確に答えて、自分のコンピュータにアクセスしたいと思います。

これを行うには、次のシステム認証ファイルを使用します。

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

ベストアンサー1

PAMステージには標準出力/標準入力はありません。 I / Oを実行するにはpam_conv(3)Viaを呼び出す必要がありますpam_get_item(3)

良い例は次のとおりです。ben.akrin.com関連するCソースコードの例が含まれています。

おすすめ記事