新浪博客

error while loading shared libraries: libpam.so.0

2016-11-29 16:46阅读:
问题描述:一次,在我的linux 32bit 虚拟机上更新ssh版本时,使用rpm命令,错误删除了有关pam相关的文件。以至于在切换用户时,报了类似于:
error while loading shared libraries: libpam.so.0: cannot open shared object file: No such file or directory
的错(现在我记得不是非常清楚了)。
我查看了一下/lib目录下的内容,确实没有libpam.so.0文件。
因此,我需要手工给系统添加这个文件。但当时已经退出了root用户。由于切换用户错误,无法再切换到root进行rpm包的安排。
解决方法:在错误删除了系统的pam相关的动态库及文件时,系统无法进行登录。因此,需要使用live CD的方式进行恢复。
1)下载live CD镜像。本人下载的镜像名称:CentOS-5.2-i386-LiveCD.iso
2)在原虚拟机上,挂载live CD镜像。
3)使用live CD进行启动。在live CD的root用户下,将原始系统的根目录挂载上来。我的原系统根目录(/)的文件为/dev/sda5。其实,live CD系统已经默认将原系统根目录已经进行了挂载(在/mnt/disc/sda5下),但挂载后的目录不具有写权限。因此,要先将其卸载,再重载到指定目录(我选择为/mnt/sda5)。
卸载原挂载点:
#umount /mnt/disc/sda5
重新进行挂载:
#cd /mnt
#mkdir sda5
#mount /dev/sda5 /mnt/sda5
4)下载pam相关的rpm安装包,使用rpm命令,安装这些rpm包。安装时,由于原系统的根目录(/),已经转为live CD系统的指定目录(/mnt/sda/),因此,在使用rpm安装时,需要做一下目录更替。
#rpm -ivh --relocate /=/mnt/sda5 /mnt/sda5/root/
pam-0.99.6.2-12.el5.i386.rpm
#rpm -ivh --relocate /=/mnt/sda5 /mnt/sda5/root/pam-devel-0.99.6.2-12.el5.i386.rpm
error <wbr>while <wbr>loading <wbr>shared <wbr>libraries: <wbr>libpam.so.0
error <wbr>while <wbr>loading <wbr>shared <wbr>libraries: <wbr>libpam.so.0
5)安装完成后,关闭live CD系统。
6)在重新开启原系统时,将live CD的镜像卸载掉。
7)重启原系统。
这样,就可以正常登录系统,并在用户间进行切换了。
我是基督徒,耶稣爱你!
' 神爱世人,甚至将他的独生子赐给他们,叫一切信他的,不至灭亡,反得永生。' (约翰福音 3:16 和合本)

我的更多文章

下载客户端阅读体验更佳

APP专享