标签:修改系统root密码
在虚拟机上安装denyhost 做测试,结果把root密码改得自己都忘记了。于是:
1. 进入单用户模式
开机的时候按e 进入grub 编辑页面选择第二行,在最后面加入single,回车按b引导进入单用户
2. 用passwd root修改密码
这个时候提示:authentication token manipulation error
<1>怀疑是权限不够的问题,于是ls –alh /etc/passwd和ls –alh /etc/shadow
发现两个都是600 排除这个原因。
<2>怀疑是shadow的第四个字段加入了限制修改天数,于是cat /etc/shadow发现root第四个字段为0,排除
<3>怀疑是磁盘满导致,df –h 和df -I 并touch xxx测试了一下,排除
<4>怀疑是特殊属性i导致, lsattr /etc/passwd 和lsattr /etc/shadow 发现并无-I 属性,排除。
<5>考虑用已有用户的密码覆盖,于是把/etc/shadow里面的linzb用户密码覆盖给root,失败。(后来发现修改相同的用户密码,shadow里面第二字段的输出是不一样的。具体原因有待研究)
<6>尝试清空shadow记录,并用pwconv同步/etc/passwd和/etc/shadow。失败
3. 尝试救援模式修复
多次失败后,脑子短路把passwd也删了,于是单用户模式也起不来了。于是:
<1>进入救援模式
开机的时候快速摁f2,切换到boot ,把cdrom调到第一位,f10保存重启
根据提示一路enter。
这是最后的界面,系统默认挂载在/mnt/sysimage下用chroot /mnt/sysimage可以切换到系统
把救援镜像的passwd和shadow复制给系统
Cp /etc/passwd /mnt/sysimage/etc/passwd
Cp /etc/shadow /mnt/sysimage/etc/shadow
重启后仍失败
<2>尝试重装相对应的rpm包
首先查找passwd 属于那个包
Rpm -e --nodeps强制卸载
挂载救援镜像到对应路径,并复制对应的包安装
Rpm –ivh 安装
此时passwd root已经不再报错
<3>修改密码后登陆发现闪退,重复几次,确认即使密码正确也会如此
查看secure日志发现:
怀疑是pam出现问题。于是按照第<2>步的方法重装pam,发现问题仍在
Ls /lib/security 发现没有pam_stack.so这个模块
于是开启相同环境的centos3 ,发现centos3也没有这个模块
怀疑是pam配置文件有问题
于是逐一对比,终于在/etc/pam.d/login里面找到了pam_stack.so字样,发现centos3并没有这个配置,于是del后重置密码,reboot 成功。至此问题解决
本文出自 “单季稻” 博客,请务必保留此出处http://linzb.blog.51cto.com/5192423/1740882
标签:修改系统root密码
原文地址:http://linzb.blog.51cto.com/5192423/1740882