自分のローカル環境にCentOS6,9を入れているが、最近掲題のことがきになっている。
たとえば/etc/pamd/loginの中に上記の記載がある。
#%PAM-1.0 auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so auth include system-auth account required pam_nologin.so account include system-auth password include system-auth # pam_selinux.so close should be the first session rule session required pam_selinux.so close session required pam_loginuid.so session optional pam_console.so # pam_selinux.so open should only be followed by sessions to be executed in the user context session required pam_selinux.so open session required pam_namespace.so session optional pam_keyinit.so force revoke session include system-auth -session optional pam_ck_connector.so
この一番最後の行にある-session。行頭の-(ハイフン)の意味が分からないのである。
ネットでちょっと調べただけだと分からなかった。調べ方が悪いだけかもしれないが。
ちなみに行頭ハイフンがある行に書かれているPAMのモジュール" pam_ck_connector.so"は/lib64/security/下には存在しなかった。
そこから「もしかしてコメントアウトと同じ動きをする?」と思って実際に設定をいじってみた。
/etc/pam.d/sshdを以下のように修正し、パスワード認証が正常に行われるかをチェックしてみたのだ。
もし本当にコメントアウトのような動きをするなら、全てのパスワードを拒否する動きをするはずだ*1。
#%PAM-1.0 #auth required pam_sepermit.so #auth include password-auth -auth optional pam_unix.so nullok try_first_pass
だが、普通にpam_unix.soモジュール*2は呼び出され、正しいパスワードを入れたらログインに成功し、間違ったパスワードなら失敗した。
コントロールフラグによって動きが違うのかも!と思って"required"、"requisite"、"sufficient"、"optional"と変えてみたがどれも結果は同じ。
う~ん。なんなんだこれは。詳しい方教えてください。