❗❗❗用户无法使用sudo权限
💡问题
Ubuntu 在普通用户使用sudo命令时,出现xxx is not in the sudoers file. This incident will be reported. 并且Linux系统中root用户没有打开。
奔着解决问题的原则,第一个想到的是打开root权限,对普通用户授权。结果令人意外,在进行认证时,同样要使用sudo命令,而使用sudo命令就要进root去授权,这是个死循环。(不应该啊,这不符合逻辑啊!!!)
🔎原因
当前用户未被授予sudo权限,所以无法使用sudo命令。
📖解决办法
❗当前计算机不存在其他用户
进入GNU GRUB,找到高级选项,通过恢复模式去操作root用户。GNU GRUB是一个来自GNU项目的多操作系统启动程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。
🔧具体操作
重启,在系统加载时,长按shift,进入GNU GRUB界面,选择Ubuntu 高级选项,如图所示。(虚拟机操作时注意鼠标位置,要放在虚拟机里,别放到宿主机里,避免系统误认为是对宿主机操作)
选择带有recovery mode的选项(恢复模式),如图所示。
选择root,进入root的shell界面,回车即可进入root用户。
输入usermod -G sudo xxx
(xxx是上面报错出现的用户名)
然后输入exit
退出root shell界面。
最后选择resume这一项进行正常启动。
启动后,使用sudo命令即可正常使用。
❗❗存在其他用户并且其他用户拥有sudo权限
🔧具体操作
(注:用户A未拥有sudo权限的用户,用户B为其他用户)
切换至其他用户:su 用户名B
使用用户的sudo命令为用户A授权sudo usermod -G sudo 用户名A
使用groups命令查看用户所属组:groups 用户名A
可以看到用户在sudo组下即可。
⭐拓展
对用户进行sudo授权时,也可以修改/etc/sudoers
这个文件(需要对该文件增加写权限)
实际可以使用visudo
命令进行修改。
找到root ALL=(ALL:ALL) ALL
这一行,在下面一行加上:
用户名 ALL=(ALL:ALL) ALL
然后保存 :wq!
📚参考内容
参考内容:
ubuntu系统启动时Recovery Mode的详细使用教程
https://blog.51cto.com/qingspace/1913910
https://blog.csdn.net/qq_43780850/article/details/122380093(关于拓展中添加的内容解释)
ubuntu下执行sudo命令提示:xx is not in the sudoers file. This incident will be reported.(相对比较详细的)