一 背景知识介绍
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 命令恢复正常了。
网上有些文章提议方法是:
在启动时在第一步时,修改grub启动项的内容,增加 quiet splash rw init=/bin/bash,启动进入到linux系统后,再使用passwd命令修改密码。
我个人不建议使用该方法,不方便。