一次Ubuntu16系统的找回root密码的过程


一 背景知识介绍
ubuntn系统的默认配置,超级用户root的密码是随机的,如果没提前对root用户的密码进行设置,
是不能直接通过root的身份来进行某些操作的,必须使用sudo命令,并通过普通用户(假设是zeng)的密码来切换。
例如: 输入 sudo su - 命令,系统会如下提示  
[sudo] password  for zeng:          ,
根据提示,输入zeng用户的密码,即可切换到root用户来使用系统。
同时通过groups zeng的命令可以查看到,默认下,用户zeng也是属于sudo用户组的。
 
二 错误操作
昨天下午中,一时头脑发热,心想能否直接给予zeng用户拥有超级用户权限呢,
所以通过以下的命令操作:
sudo su -
usermod -G root zeng,//谨记,该命令使用是有问题的,
然后继续犯错误,退出了root用户,想对刚刚修改后的root用户进行测试,看刚才的修改是否生效。
发现zeng用户也没有拥有的权限,同时sudo的权限也被弄没了,也切换不到root用户,直接切换时,
使用 su - ,会提示要输入root的密码。
 
三 尝试方法一
查看资料,看能否通过修改/etc/sudoers文件的内容来增加zeng用户使用sudo的权限。
发现没有权限去修改该文件,修改/etc/passwd文件也没有办法。
 
四 尝试方法二 修改root用户密码。
 只能利用启动ubuntu时进入到修复模式,重新设置root的密码。
 具体方法: 
1 重新通电启动系统,在系统刚启动时,多次并及时的按“esc”键,进入到grub, 选择修复模式选择recovery mode。
2 进入到Recovery Menu界面,选择  root   Drop to root shell prompt 项,也就是提升到root权限。
   然后按enter键继续启动。
3 启动成功后,直接输入 passwd 命令重新设置root的密码。
4  重启系统, 正常模式启动系统。
5  利用zeng用户登录,使用 su - ,然后输入root的密码,切换到root用户。
6  修改 /etc/sudoers 文件,增加一行  zeng  ALL=(ALL:ALL) ALL 内容。
   zeng  ALL=(ALL:ALL)NOPASSWD:ALL  这一行表示不需要
7  切换回 zeng用户,可以测试 sudo 命令恢复正常了。
 
 

作者:happyzeng79,发布于:2019/07/11
原文:https://www.cnblogs.com/jameszeng/p/11171810.html