PAM unable to dlopen(/lib/security/pam_cap.so)
(2014-08-28 16:38:21)
标签:
pamdlopenpam_cap.so解决办法libcap |
分类: Ubuntu/Debian |
PAM unable to dlopen / pam_cap.so
问题
系统版本:Debian 6.0.7 x86_64
错误信息:
PAM unable to dlopen(/lib/security/pam_cap.so): /lib/security/pam_cap.so:
cannot open shared object file: No such file or directory
PAM adding faulty module: pam_cap.so
pam_cap.so
这个库文件是由libcap2
软件包提供,先确认软件版本。
dkpg -l | grep libcap2
ii libcap2 1:2.24-4 POSIX 1003.1e capabilities (library)
根据https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=672940指出,这个问题
- Found in version libcap2/1:2.22-1.1
- Fixed in version libcap2/1:2.22-1.2
所以,需要先确定系统上libcap2
版本要比1:2.22-1.2
新。
注意
安装libcap2会影响到一些系统设置,比如insserv,设置自启动服务,贴上我的安装过程信息:
...
Preparing to replace libcap2 1:2.19-3 (using …/libcap2_1:2.24-4_amd64.deb) …
Unpacking replacement libcap2 …
Setting up libcap2 (1:2.24-4) …
Setting up python3 (3.4.1-1) …
running python rtupdate hooks for python3.4…
running python post-rtupdate hooks for python3.4…
Setting up lxc (1:1.0.5-1) …
Installing new version of config file /etc/init.d/lxc …
insserv: warning: script ‘my_server’ missing LSB tags and overrides
...
安装后,继续检测还有没报错:
tail -f /var/log/auth.log
发现,还是有继续报错,每分钟一次(crontab 调用相关),继续检查原因,因为pam_cap.so
肯定是有装上的,在/lib
目录里面翻来翻去,最后真找出来了。
解决办法
由于系统是64位版本,pam_cap.so
文件安装位置与32位的有所不同,不是在/lib/security/pam_cap.so
,而是/lib/x86_64-linux-gnu/security/pam_cap.so
,重新做了个软连接过去就能解决问题:
ln /lib/x86_64-linux-gnu/security/pam_cap.so /lib/security/pam_cap.so
注意链接的源文件尽量使用绝对路径,否则可能会报错:Too
many levels of symbolic links
。