Ubuntu 22.04中sudo权限异常问题求助
Ubuntu 22.04中sudo权限异常问题求助
同学别慌,刚接触Ubuntu就碰到这种权限问题确实头大,我来一步步帮你搞定~
你遇到的错误提示 sudo must be owned by uid 0 and have the setuid bit set,本质是sudo这个系统关键工具的权限配置出问题了:要么它的所有者不是root用户(uid 0),要么丢失了让它能以root身份执行的setuid权限位,这两个条件缺一个sudo都没法正常工作。
因为你现在已经用不了sudo,只能通过系统的recovery模式来修复,具体步骤如下:
- 首先重启你的Ubuntu系统,在开机GRUB启动菜单时,选择
Advanced options for Ubuntu(如果没看到GRUB菜单,重启时按住Shift键,UEFI机型可能需要按Esc键调出) - 接着在子菜单里选择带
recovery mode后缀的内核版本(一般选最新的那个就行) - 进入recovery模式的操作菜单后,找到并选择
root - Drop to root shell prompt,这时候你会进入一个root权限的命令行环境 - 先把根目录重新挂载为可读写模式(recovery模式默认是只读的,没法修改文件),执行命令:
mount -o remount,rw / - 接下来修复sudo文件的所有者和权限:
- 先把sudo的所有者和组都改为root:
chown root:root /usr/bin/sudo - 然后给sudo加上setuid权限位(这是让普通用户能通过它临时获取root权限的关键):
chmod u+s /usr/bin/sudo
- 先把sudo的所有者和组都改为root:
- 可以验证一下修复结果,执行命令看权限是否正确:
正常输出应该类似这样(日期可能不同):ls -l /usr/bin/sudo-rwsr-xr-x 1 root root 164024 Jul 15 2022 /usr/bin/sudo
重点看开头的rws(说明setuid位已生效),以及所有者是root:root - 最后输入
exit退出root shell,回到recovery菜单,选择resume - Resume normal boot重启系统 - 重启后打开终端,输入
sudo apt update测试一下,应该就能正常使用sudo权限了
给你这个新手提个醒:以后别随便修改/usr/bin目录下系统自带文件的权限,像sudo这种核心工具,权限改坏了就会出大问题~
备注:内容来源于stack exchange,提问作者Muhammad Alfiky
相关产品推荐
相关产品推荐

