diary/Kojima/2008-07-30
の編集
http://plamo.linet.gr.jp/?diary/Kojima/2008-07-30
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
-- 雛形とするページ --
diary/Template
[[diary/Kojima]] ・gnome-screensaver 2 gnome-cdplayer とかが動くようになったので gnome-screensaver の認証問題を再調査. ソースコードレベルで追いかけてみたけど,結論的には gs-auth-pam.c の中の gs_auth_thread_fund で status = pam_authenticate (pam_handle, flags); して,libpam の中の pam_authenticate で認証を行なっているだけだから,test-passwd で kojima@gnome[~/gnome-screensaver/build/src]% ./test-passwd ** Message: pam_start ("gnome-screensaver", "kojima", ...) ==> 0 (Success) ** Message: Handling message style 1: 'Password: ' ** Message: Waiting for respose to message style 1: 'Password: ' ** Message: Waiting for lock ** Message: Waiting for response ** Message: Got message style 1: 'Password: ' Password: ** Message: Got response ** Message: Got respose to message style 1: interrupt:0 ** Message: Msg handler returned 1 ** Message: pam_authenticate (...) ==> 7 (Authentication failure) ** Message: pam_end (...) ==> 0 (Success) ERROR: Incorrect password. Incorrect ** Message: pam_start ("gnome-screensaver", "kojima", ...) ==> 0 (Success) ** Message: Handling message style 1: 'Password: ' ** Message: Waiting for respose to message style 1: 'Password: ' ** Message: Waiting for lock ** Message: Waiting for response ** Message: Got message style 1: 'Password: ' Password: このエラーを返しているのは libpam の中の pam_authenticate ということになるのだけど, PAM を使っている他の認証系では問題なく通っている設定が,なぜ gnome-screensaver だけエラーになるのか不明. gnome-screensaver の PAM の認証の設定は /etc/pam.d/gnome-screensaver になるので, 動いている login とか su とか cups とかの設定ファイルを gnome-screensaver にコピーして試してみたのだけど,ことごとくダメになるところを見ると gnome-screensaver 側から libpam を呼び出す時の問題のような気はするのだけど,PAM を起動するやりとりを 見る限りでは特に問題はなさそうなのだがなぁ.. -もうしばらくジタバタしたところ、Linux-PAM を 0.77 から 1.0.1 に更新してやれば gnome-screensaver でも正しく認証できる模様。PAM まわりは結構影響が大きいのであまりいじりたくはないのだけど、さすがに 0.77 というのは古いから更新した方がいい気はするな。ただ、0.99 あたりから pam_stack.so がなくなって、include で別のサービスを呼ぶようになっているので、pam_stack.so を使っている設定ファイルは修正しないといけないなぁ。まぁ、GNOMEのビルドの時にも気にはなってたけど、最近のソフトウェアは PAM を使う場合、include system-auth を使うのが一般的なので、それに合わせるようにしておく方がいい気はするな。 -- [[kojima]] &new{2008-07-30 (水) 23:46:41}; ちなみに、うまくいった時の test-passwd はこんな感じだった。 kojima@gnome[~/gnome-screensaver/build/src]% ./test-passwd ** Message: pam_start ("gnome-screensaver", "kojima", ...) ==> 0 (Success) ** Message: Handling message style 1: 'Password: ' ** Message: Waiting for respose to message style 1: 'Password: ' ** Message: Waiting for lock ** Message: Waiting for response ** Message: Got message style 1: 'Password: ' Password: ** Message: Got response ** Message: Got respose to message style 1: interrupt:0 ** Message: Msg handler returned 1 ** Message: pam_authenticate (...) ==> 0 (Success) ** Message: pam_acct_mgmt (...) ==> 0 (Success) ** Message: pam_setcred (...) ==> 0 (Success) ** Message: pam_end (...) ==> 0 (Success) Correct! これを見るかぎりでは、pam_authenticate のレベルの問題のように見えるが、 0.77 から何が変わったのだろう?
タイムスタンプを変更しない
[[diary/Kojima]] ・gnome-screensaver 2 gnome-cdplayer とかが動くようになったので gnome-screensaver の認証問題を再調査. ソースコードレベルで追いかけてみたけど,結論的には gs-auth-pam.c の中の gs_auth_thread_fund で status = pam_authenticate (pam_handle, flags); して,libpam の中の pam_authenticate で認証を行なっているだけだから,test-passwd で kojima@gnome[~/gnome-screensaver/build/src]% ./test-passwd ** Message: pam_start ("gnome-screensaver", "kojima", ...) ==> 0 (Success) ** Message: Handling message style 1: 'Password: ' ** Message: Waiting for respose to message style 1: 'Password: ' ** Message: Waiting for lock ** Message: Waiting for response ** Message: Got message style 1: 'Password: ' Password: ** Message: Got response ** Message: Got respose to message style 1: interrupt:0 ** Message: Msg handler returned 1 ** Message: pam_authenticate (...) ==> 7 (Authentication failure) ** Message: pam_end (...) ==> 0 (Success) ERROR: Incorrect password. Incorrect ** Message: pam_start ("gnome-screensaver", "kojima", ...) ==> 0 (Success) ** Message: Handling message style 1: 'Password: ' ** Message: Waiting for respose to message style 1: 'Password: ' ** Message: Waiting for lock ** Message: Waiting for response ** Message: Got message style 1: 'Password: ' Password: このエラーを返しているのは libpam の中の pam_authenticate ということになるのだけど, PAM を使っている他の認証系では問題なく通っている設定が,なぜ gnome-screensaver だけエラーになるのか不明. gnome-screensaver の PAM の認証の設定は /etc/pam.d/gnome-screensaver になるので, 動いている login とか su とか cups とかの設定ファイルを gnome-screensaver にコピーして試してみたのだけど,ことごとくダメになるところを見ると gnome-screensaver 側から libpam を呼び出す時の問題のような気はするのだけど,PAM を起動するやりとりを 見る限りでは特に問題はなさそうなのだがなぁ.. -もうしばらくジタバタしたところ、Linux-PAM を 0.77 から 1.0.1 に更新してやれば gnome-screensaver でも正しく認証できる模様。PAM まわりは結構影響が大きいのであまりいじりたくはないのだけど、さすがに 0.77 というのは古いから更新した方がいい気はするな。ただ、0.99 あたりから pam_stack.so がなくなって、include で別のサービスを呼ぶようになっているので、pam_stack.so を使っている設定ファイルは修正しないといけないなぁ。まぁ、GNOMEのビルドの時にも気にはなってたけど、最近のソフトウェアは PAM を使う場合、include system-auth を使うのが一般的なので、それに合わせるようにしておく方がいい気はするな。 -- [[kojima]] &new{2008-07-30 (水) 23:46:41}; ちなみに、うまくいった時の test-passwd はこんな感じだった。 kojima@gnome[~/gnome-screensaver/build/src]% ./test-passwd ** Message: pam_start ("gnome-screensaver", "kojima", ...) ==> 0 (Success) ** Message: Handling message style 1: 'Password: ' ** Message: Waiting for respose to message style 1: 'Password: ' ** Message: Waiting for lock ** Message: Waiting for response ** Message: Got message style 1: 'Password: ' Password: ** Message: Got response ** Message: Got respose to message style 1: interrupt:0 ** Message: Msg handler returned 1 ** Message: pam_authenticate (...) ==> 0 (Success) ** Message: pam_acct_mgmt (...) ==> 0 (Success) ** Message: pam_setcred (...) ==> 0 (Success) ** Message: pam_end (...) ==> 0 (Success) Correct! これを見るかぎりでは、pam_authenticate のレベルの問題のように見えるが、 0.77 から何が変わったのだろう?
テキスト整形のルールを表示する