CプログラムへのLinuxユーザーパスワードの書き込み

CプログラムへのLinuxユーザーパスワードの書き込み

sudo操作を実行するために呼び出されるLinux用のPAMを実装しようとしています。その目的は、cmdでsudo操作を実行するときにパスワードを入力した後、ユーザーに携帯電話に送信されるテキストメッセージを要求することです。このパスワードは、一般認証PAM(LinuxのデフォルトPAM)を介して要求されると予想されます。ユーザーが入力したプレーンテキストパスワードはハッシュ値に変換され、ハッシュ値と比較して一般認証PAMで確認されます。シャドウファイルでこのユニバーサル認証PAMで認証した後、私のカスタムPAMが呼び出されますが、ユーザーが入力した一般パスワードを保持またはアクセスできなくなりました。私のカスタムPAM)、sudoの後にユーザーが入力した一般的なパスワードにどのようにアクセスしますか?汎用認証PAMから私のカスタムPAMに一般的なパスワードを渡すことはできますか?

ユーザーがSUDOを試みるときにマルチレベル認証として機能するカスタムPAMを実装しようとしています。したがって、これらのユーザー資格情報を自分の携帯電話にSMS(OTP)を送信するAPIに送信する必要があります。 APIリクエストを送信するCプログラムがあり、プログラムにパスワードを渡す必要があります。

"pwd.h"ファイルからユーザー名にアクセスしました。ただし、パスワードにはアクセスできません。

答え1

PAMモジュールからユーザー認証トークンを取得する方法は次のとおりです。pam_get_authtok

しかし、パスワードを渡すことは一般的に良い考えではありません。あなたのテキストメッセージサービスは実際にユーザーのパスワードを知る必要がありますか? (私は答えを見つけるのではなく、質問する価値のある提案を見つけることです。)

関連情報