pam アップデートでひどい目に
先日、ファイル置き場として使っているサーバの PAM をバージョンアップしました。
PAM というのは認証系モジュール群です。
ユーザ認証→ PAM → FTP とか SSH とか、サーバとユーザ間に入って認証チェックを行い、 3 回エラーになったらクラッキングとみなす、等といったことを行ってくれるモジュールです。
なので、サーバアプリだけじゃなく、 su や login 、 passwd といったコマンドにも関与したりしています。
今まで使っていたのが、確かバージョン 0.7 系でした。
今回、 PAM-1.0.2 にバージョンアップして、うっかり root をログアウトしてしまったため、それ以降、 SSH でログインした一般ユーザが su コマンドで root になれない、コンソールからすべてのユーザでログインできない、 sodo もできない、といったトラブルに見舞われてしまいました。
一撃でほぼ致命傷の三連コンボです。厄日ですかね?
SSH は PAM を使わないようになっていたのでログインできたのですが、 root にもなれない、 sudo も使えないんじゃ何もできません。
しょうがないので、非常用として別ドライブにある Linux OS を起動し、問題のドライブをマウント、 /etc/ssh/sshd_config を root 許可にして再起動しました。
これで SSH から直接 root ログインできるようになります。 ( 今までは 一般ユーザで SSH にログイン → root していたが、背に腹は代えられません )
いよいよ root になってエラーのチェック。
root になれないのでエラーログも見れず、苦労しました。
- Nov 16 14:48:01 hogehoge su[18119]: PAM unable to dlopen(/lib/security/pam_stack.so): /lib/security/pam_stack.so: undefined symbol: _pam_strdup
- Nov 16 14:48:01 hogehoge su[18119]: PAM adding faulty module: /lib/security/pam_stack.so
- Nov 16 14:48:01 hogehoge su[18119]: pam_authenticate: Module is unknown
- Nov 16 14:48:01 hogehoge su[18119]: FAILED su for root by hogege
- Nov 16 14:48:01 hogehoge su[18119]: - pts/2 hogege:root
どうやら pam.stack.so が認識できないようです。
- # ll /lib/security/pam_stack.so
としたところ、ファイルが存在しなかったので、現バージョンでは使われなくなったんでしょうかね。
やることは分かったので /etc/pam.d の中にあるファイルを調べてみることにしました。
pam_stack.so がからんだ行を調べてみると、今までなら、 account required pam_stack.so service=default で OK だったのが、以下のように変更しなければならないようです。 account include default
というわけで、すべての required pam_stack.so を include に変更して、無事ログインできるようになりましたとさ。