su
に依存するものを使用できないUbuntu 14.04
サーバーがあります。これは、サービスを再起動したり、ユーザーを切り替えたりすることができないことで明らかになります。
root@ci-web1:~# su - mxx
su: Authentication failure
私の/var/log/auth.log
は以下を示しています:
Oct 10 11:14:15 ci-web1 su[19709]: PAM unable to dlopen(pam_rootok.so): /lib/security/pam_rootok.so: cannot open shared object file: No such file or directory
Oct 10 11:14:15 ci-web1 su[19709]: PAM adding faulty module: pam_rootok.so
Oct 10 11:14:15 ci-web1 su[19709]: PAM unable to dlopen(pam_unix.so): /lib/security/pam_unix.so: cannot open shared object file: No such file or directory
Oct 10 11:14:15 ci-web1 su[19709]: PAM adding faulty module: pam_unix.so
Oct 10 11:14:15 ci-web1 su[19709]: pam_authenticate: Authentication failure
Oct 10 11:14:15 ci-web1 su[19709]: FAILED su for mxx by root
Oct 10 11:14:15 ci-web1 su[19709]: - /dev/pts/0 root:mxx
これらのファイルは両方とも/lib/x86_64-linux-gnu/security/
にあります。なぜ/lib/security/
を探しているのかわかりません。
この問題を修正する方法は?
straceの出力と試行錯誤を何度も掘り下げた結果、原因が見つかりました。パッケージの更新中のある時点で、login
パッケージとlibpcre3
モジュールの間の依存関係リンクが壊れました。その特定のモジュールを再インストールして依存関係リンクを復元した後、su
が再び機能するようになりました。