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 を起動するやりとりを 見る限りでは特に問題はなさそうなのだがなぁ..

ちなみに、うまくいった時の 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 から何が変わったのだろう?


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-12-17 (金) 16:35:41