2011-10-25 11 views
0

PAMを使用してユーザーを認証する簡単なアプリケーションを書いています。pam_start()pam_authenticate() +自分の会話機能+ pam_end()LinuxでPAMを使用した認証。なぜそれはいくつかのユーザーから実行に失敗することがありますか?

認証情報を確認しているユーザーの下でアプリケーションを実行すると、認証が成功します。それ以外の場合、ユーザーAからアプリケーションを実行してユーザーBの資格情報を確認すると、認証に失敗します。 (

私の質問:?なぜpam_start()に渡されたサービス名として私もloginなどpasswdを試してみました何が問題をデバッグするために行くためにどの方向に変化していないか、おそらく私は実行するために、別のPAMサービスを使用する必要があります。。?タスク?

psのユーザーは、「」第二の場合にはできますか?。どのように「資格証明書」をチェックしている

答えて

0

パスワードなし及び/ binに/偽のシェルを持つユーザーであることが、いくつかのファイルが読み込まれていますユーザーAはそのファイルを読み取りますか?

pam_startに渡されるサービス名はプロセスが何をすることができるかに影響します。 suやpasswdのような同様のことをする必要のあるプログラムは、実際にはsetuidプログラムであることに注意してください。

また、利用者Aが

0

ユーザAがパスワードファイル/etc/shadowの読み取り権限を持っていない可能性がありますユーザBを偽装できるようにすることで、アプリケーション/モジュールのセキュリティホールを作成しないように気をつけてください。これは、資格情報チェックプログラムに通常root権限が必要な理由の1つです。

So:ルート権限として/ rootユーザーとしてプログラムを実行すると、ユーザーAとユーザーBには機能しますか?

関連する問題