sudoers文件报错导致无法使用sudo(Ubuntu18.0.4 | VMware)

当我们为了修改用户的sudo权限时,不小心出现语法错误时会导致sudoers文件无法解析,这个时候如果没有预先准备好root权限的终端,可能会导致无法使用sudo,并且无法修改sudoers文件的尴尬境地。

情景再现:

ubuntn 不在sudoers 文件中 ubuntu不能用sudo_运维

解决办法:

第一步:重启ubuntu,使用图形化界面的重启按钮,或者使用如下命令:

reboot

第二步:在系统的重启的过程中,不断按下退出键(Esc)

就会进入如下界面:

ubuntn 不在sudoers 文件中 ubuntu不能用sudo_重启_02

第三步:进入上述界面后,选择第二个 Advanced options for Ubuntu

就会进入如下界面:

ubuntn 不在sudoers 文件中 ubuntu不能用sudo_运维_03

然后选择选择第二个Ubuntu, with Linux 5.4.0-91-gneric (recovery mode)

就会进入如下界面:

ubuntn 不在sudoers 文件中 ubuntu不能用sudo_运维_04

然后选择倒数第二个root

如果你的root用户有设置密码,就会出现这样的提示

ubuntn 不在sudoers 文件中 ubuntu不能用sudo_root用户_05

在这里输入密码(记得注意有没有开数字输入哦),按下回车后,会进入root用户:

ubuntn 不在sudoers 文件中 ubuntu不能用sudo_root用户_06

第四步,使用root用户将sudoers文件修改为正确格式
进入文件使用如下命令:

vi /etc/sudoers

ubuntn 不在sudoers 文件中 ubuntu不能用sudo_linux_07

保存文件时需要使用 wq!

vi的使用:x为删除单个字母,dd为删除行,a为在当前位置的前面插入,i为在当前位置后面插入,o为在当前位置的下一行开头插入。退出插入模式的方式:按下Esc建。退出or保存文件:按Esc确保处于命令模式,按下:然后输入对应的命令q为退出,w为保存,!为强制。

wq!为强制保存并退出。

最后,输入重启命令:

reboot

如果不小心修改/etc/enviroment之类的文件导致命令错误,也可以使用上述类似方法。
由于为修改enviroment文件时是使用的非虚拟机的ubuntu所以不清楚进入方法是否户通
ubuntu系统可以在开机的时候长按shift进入选择界面(如果没有进入建议多重启几次尝试,我也是开了几次才进去的)
重启的快捷键:chrl+alt+delete

小建议:为了避免这样麻烦的情况可以先开一个root的终端在一旁以防无法使用sudo。