前一段日子安装了CentOS6.0的系统,今天突然想进去看看,结果发现忘记了root的密码。于是乎重启,修改grup进入单用户模式,输入passwd来更改root密码,结果意外的发现无论我怎么输都没反应,不能修改密码。后来通过百度找到了原因。原来在6.0以后的版本中,直接输入passwd是无效的!这点与之前rhel 5是不同的!一共有四种方法可以修改密码。

1,进入单用户模式后,关闭selinux,再输入passwd即可修改密码。

2,修改/etc/passwd文件,将里面root行代表有密码的"x"删掉。

3,修改/etc/shadow文件,将里面root行加密的密文删掉。

4,通过光盘引导进入修复模式来修改。

由于没有centos镜像,我只做了前三项试验,结果均成功。下面附图:

先修改grub,将第二行行尾加上“1”或“single”

进入单用户模式后,在未关闭selinux之前,输入passwd,会发现没有任何反应。

进入单用户模式后,用“setenforce 0”来关闭grub。可以看到可以输入passwd来更改密码了。

搞了半天,原来是selinux在搞鬼......

如果不关闭selinux,是否也能修改密码呢?答案是肯定的。那么就需要更改shadow或passwd即可。

删除/etc/passwd密码栏:

 

或删除/etc/shadow密码栏:

 

删除后所得结果如下,由普通用户切换到超级用户,就不需要输入密码了:

这个问题很简单,只是由于之前修改密码知识的影响,让我苦恼了很久。看来还是得“百度一下,你就知道”啊!