Linux centos7忘记root密码,修改root密码
前几天在虚拟机上安装了个centos7 今天想进去看一下上边nginx的配置 , 但是发现密码忘了 进不去了 , /(ㄒoㄒ)/~~ , 于是重启Linux进入单用户模式修改密码 。
一、进入单用户模式 :
-
开机进入启动界面
开机进入启动界面后,要按照屏幕的下方的操作提示迅速按下“e”键。
-
配置启动文件
按 下“e”键后即来到启动文件界面,这时按键盘上面的方向键“下”,一直到文件底部,在"LANG=zh_cn.UTF-8"同行后面加上 “init=/bin/sh”,千万要注意一定要加在这个位置,其他网站上面的教程另起一行加上此命令,我试验过是无法进入单用户命令行的。
然后按照屏幕下方的提示按下“ctrl+x”即进入单用户模式。
-
用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 busy1,可以输入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・。)