首页 » 其它linux技术

Linux centos7忘记root密码,修改root密码

   发表于:其它linux技术评论 ()   热度:1651

前几天在虚拟机上安装了个centos7 今天想进去看一下上边nginx的配置 , 但是发现密码忘了 进不去了 , /(ㄒoㄒ)/~~ ,  于是重启Linux进入单用户模式修改密码 。

一、进入单用户模式 :

            

  1. 开机进入启动界面

    开机进入启动界面后,要按照屏幕的下方的操作提示迅速按下“e”键。

  2. 配置启动文件

    按 下“e”键后即来到启动文件界面,这时按键盘上面的方向键“下”,一直到文件底部,在"LANG=zh_cn.UTF-8"同行后面加上 “init=/bin/sh”,千万要注意一定要加在这个位置,其他网站上面的教程另起一行加上此命令,我试验过是无法进入单用户命令行的。

    然后按照屏幕下方的提示按下“ctrl+x”即进入单用户模式。

  3. 用passwd修改root密码

    此时在单用户模式下输入“passwd root”回车
    提示输入新密码  (输入完 提示 BAD PASSWORD: it is too simplistic/systematic, 密码太简单,又重新输入了个复杂的)回车 ok,
    提示再重新输入一遍新密码(输入完)回车 出现了错误提示 passwd: Authentication token manipulation error


    在网上搜了一下 报这样的错误是:密码:身份验证令牌操作错误,一般是密码文件的权限的问题,不过也有可能是根目录空间满

    /etc/passwd, /etc/shadow文件被锁住,不允许修改 可能造成出现这个错误提示
    以下这样不能修改  就可以造成  以上的错误。

     

    
    lsattr /etc/passwd
    ----i-------- /etc/passwd
      lsattr /etc/shadow
    ----i-------- /etc/shadow

    要把这两个文件的 i 属性去了 如下所示

    
    chattr -i /etc/shadow
    chattr -i /etc/passwd

    但是我看了一下我的这俩文件属性 

    
    lsattr /etc/passwd
    ------------- /etc/passwd
    lsattr /etc/shadow
    ------------- /etc/shadow


    没有  i 这个属性应该是正常的  . 但是还是不能修改密码

    又搜了一下  说是 

    linux单用户模式下的根文件系统进入“read-only file system”即只读状态,此时,打入:

    sh-3.00#mount –o remount rw –t ext3 /

    让根文件系统重新mount成可读写,你就可以自由编辑出现错误的系统文件了

    于是我输入了 命令 :  mount –o remount rw –t ext3  然后回车 结果报错(命令没输入全 “mount –o remount rw –t ext3 /”)我以为这个不好用  用了另一个命令

    
    mount -o remount,rw /

    执行完这个命令后再修改密码 发现  密码修改成功 . O(∩_∩)O哈哈~ , 你说修改个密码容易么 你说 ,这痛苦的经历记录了下来 , 防止以后再出错 .

 1。进入Linux单用户模式
     执行 root# mount -o remount,rw /
     然后/etc/fstab就可以修改了
2。用光盘进入Linux修复模式 (光盘启动按F2 接着输入linux rescue回车进入)
    然后修改fstab
    注意进入修复模式后fstab路径为
   vi /mnt/sysimage/etc/fstab

(一)
linux单用户模式下的根文件系统进入“read-only file system”即只读状态,此时,打入:

sh-3.00#mount –o remount rw –t ext3 /

让根文件系统重新mount成可读写,你就可以自由编辑出现错误的系统文件了
(二)
单用户无法改密码出现的情况:
报错代码:Authentication token lock busy

1,可以输入pwconv 同步配置信息。然后再次输入passwd

2,使用df -i      (显示i节点信息,而不是磁盘块。)  如果占用到100%也修改不了密码,这时候需要清除下。

pwconv
编辑
功能说明:开启用户的投影密码。
语 法:pwconv
补充说明:Linux系统里的用户和群组密码,分别存放在名称为passwd和group的文件中, 这两个文件位于/etc目录下。因系统运作所需,任何人都得以读取它们,造成安全上的破绽。投影密码将文件内的密码改存在/etc目录下的shadow和gshadow文件内,只允许系统管理者读取,同时把原密码置换为"x"字符,有效的强化了系统的安全性。
pwconv:开启用户的shadow口令.
一般来用pwconv来同步口令,下面来说一下,它的工作流程:
pwconv依赖于passwd中的密码区'x'来同步/etc/passwd与/etc/shadow这两个文件;以/etc/passwd为主来控制/etc/shadow中的各项:
A:若/etc/shadow不存在,则pwconv将用/etc/passwd来建立
B:若/etc/shadow已存在,则:
1.若条目在passwd中已存在,而不在shadow中,则在shadow中添加相关条目
2.若条目在shadow中已存在,而不在passwd中,则从shadow中删除相关条

1. 在本地用单用户模式进入系统,

2. 直接passwd,报"passwd: Authentication Token Manipulation Error",搜了一下这个错误网上有多种解决方法,详见本文最后,可这些方法我都试了也没有起作用。

3. #df -hl的时候,发现根文件系统满了,清出部分空间后,passwd更改密码仍然报上面那个错误;

4. 查看/var/log/secure日志是,发现了下面的错误:

Nov 26 05:16:46 rcwweb2 sshd[1065]: PAM unable to dlopen(/lib/security/pam_unix.so)

Nov 26 05:16:46 rcwweb2 sshd[1065]: PAM [error: /lib/security/pam_unix.so: invalid ELF header]

Nov 26 05:16:46 rcwweb2 sshd[1065]: PAM adding faulty module: /lib/security/pam_unix.so

Nov 26 05:16:46 rcwweb2 sshd[1066]: fatal: Access denied for user root by PAM account configurationp

5. 从日志中看出是/lib/security/pam_unix.so文件出了问题,之前本机有一个pam_unix.so.bak文件,删除损坏文件,将备份恢复后,可以正常登录了。

不知道是不是因为根盘满了造成此文件损坏导致的。

 

这期间参考了网上的一些处理报"passwd: Authentication Token Manipulation Error"报错的方法,具体如下:

1)可能是/etc/passwd和/etc/shadow文件不同步导致的,使用pwconv命令同步;

2)/etc/passwd和/etc/shadow设置了安全设置,通过chattr -i /etc/passwd /etc/shadow解决;

 

3)通过echo "123456" | passwd --stdin root或echo "root:lanmang" | chpasswd 手动修改密码解决;

4)关闭selinux解决;

5)通过perl -e 'print crypt("passw0rd","/$1/$YkRDae.B/$"),"/n"' 手动生成密码串,并手动拷贝到/etc/shadow文件中解决;

 

-->

(。・v・。)
喜欢这篇文章吗?欢迎分享到你的微博、QQ群,并关注我们的微博,谢谢支持。