分类: LINUX
2011-11-01 18:40:10
问题:
ssh到一个DomU时候出现密码验证通不过,开始以为是时钟问题导致到AD的Kerbrose认证出现问题,于是用console上去用本地帐户登录,结果发现root口令过期,但是修改口令时候又出现modeul unkonw的错误。
Last login: Tue Nov 1 05:44:54 2011 from 10.xxx.xx.xxx
$ sudo xm console testlink-01
Debian GNU/Linux 5.0 testlink-401 hvc0
testlink-401 login: root
Password:
You are required to change your password immediately (password aged)
Changing password for root.
(current) UNIX password:
Module is unknown
Debian GNU/Linux 5.0 testlink-401 hvc0
testlink-401 login:
分析:
开始想着通过近单用户模式看下,所以搜了下Xen Single user mode,但是发现结果都不太靠谱,而中文关于这个搜索的结果貌似都是一个文章。
后来想着把虚拟磁盘文件挂上看看日志。有一点要提到的就是最好把DomU先shutdown,不然会出现磁盘不一致。
$sudo xm shutdown testlink-01
$sudo mount –o loop testlink-01/disk.img /mnt/tmp
然后到mount点下的var/log查看auth.log
发现有错误。
Nov 1 06:36:14 testlink-401 sshd[995]: PAM unable to dlopen(/lib/security/pam_c
racklib.so): libcrack.so.2: cannot open shared object file: No such file or dire
ctory
所以初步怀疑是由于系统升级导致某些包丢失造成的。
解决:
首先要解决系统登录,然后安装相应的软件包就可以了。
1. root登录
由于密码过期才会调用cracklib,所以修改etc/shadow,将过期信息删除,应该是冒号后面的几个数字部分。
然后console登录。
根据 /lib/security/pam_cracklib.so属于 libpam-cracklib这个包,运行
$sudo apt-get install libpam-cracklib,问题解决。