我有Ubuntu 14.04
服务器,我不能使用任何依赖su
. 这表现在无法重启服务甚至切换用户。
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
,现在又可以正常工作了。