昨天有台机器的Ubuntu系统密码出了问题,一直提示错误。由于里面的数据比较重要,不建议重装系统,所以百度了一会,最终解决了忘记密码问题。整理了一个大合集分享出来。
第一种:参考教程如下 https://blog.csdn.net/zd147896325/article/details/81664558
简单的介绍一下流程。
第一步:
回车,进入高级选项
第二步
随便选一个recovery mode 以4.4.0-130为例。选了这个,后续所有的启动就不要选别的版本号了(图中还有4.4.0-121和119和21和96)
按e进入编辑,不要按回车,不要按回车,不要按回车。(按错了关机重来)
第三步
这里有一个有争议的地方,上面的替换结果为 ro quiet splash rw init=http://www.likecs.com/bin/bash 或者quiet splash rw init=http://www.likecs.com/bin/bash 这里的区别在于有没有 ro 我分别试过,我使用的18.04系统,加了ro不行,不能有效的修改密码。这里大家可以都试试,这样比较稳妥一点。为什么要修改这里,我大致的百度过,因为普通的recovery mode采用的只读模式,不能修改,所以要进入的时候添加上可读可写的权限。
第四步
这里就进入了一个类似于终端的地方,这个终端在第二个方法中使用的特别频繁,这个终端可以直接运行绝大多数指令(大多数不是全部,比如图像界面的就不可以 比如gedit)。使用命令即可清楚密码 passwd + 用户名 (比如passwd root或者passwd lqmdashuaibi)
重启即可生效。(重启快捷键 CTRL+alt+del)
上面的方法确实可行,但是昨天我遇到的问题有点奇怪,刚开始账户密码改了之后 还是登录不进去,后来使用passwd +用户名 直接提示没有此用户了,这种情况下上述方法就失效了。
顺带说一下如何查看系统种所有的用户 在终端使用命令 cat /etc/shadow 名字超级长的就是用户 如下图所示
上图中可以看到用户有两个 root 和 angel
第二种方法: 参考教程 https://blog.csdn.net/jiangjiang_jian/article/details/81169258
大致的说一下思路 因为原有的账户密码失效了,更改也不行。所以可以在recovery mode 中 添加一个用户 ,使用那个用户进入系统。然后再给添加的用户root权限,就可以实现使用新添加的账户来对系统进行完全掌控。避免访问文件、挂载磁盘的时候出某些冲突,还可以使用root模式删掉出问题的账户。
具体实现如下:
和上述一样,修改Ubuntu高级选项进入recovery mode (目的是有可读可写的权限) 进入终端之后,使用 adduser + 用户名 (比如 adduser lqmdashuaibi)
然后根据引导完成用户的创建 (英语看不懂的建议有道词典)有一些需要解释的地方 FULL NAME 为你登录的时候显示的名字(而非用户名),其他的直接敲回车就可以了。
举个例子:adduser lqm 如果设置 FULL NAME 为LQM 那么使用 deluser的时候要写lqm 而不能写LQM 换句话说FULL NAME 仅仅用来显示登陆界面的名字(我个人是这样理解的)
然后给这个用户 添加进root模式的权限 这个需要在文件中修改。在终端中打开相应的文件进行修改即可 使用 visudo 命令开始编辑该文件
注意名字要正确 不要使用FULL NAME
保存重启(CTRL+alt+del 三键重启) 然后正常进入系统,登录创建好的账户即可。然后使用sudo su 就可以进入root模式了
想删除之前有问题的账号可以使用deluser + 用户名 (root权限才可以) 比如 deluser lqmdashuaibi
adduser 和useradd 对应的删除为 deluser 和userdel 这两者的区别可以在上述的参考教程中找到。