You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fedora 37下修复sudo报错「sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set」的正确方法

Fedora 37下修复sudo报错「sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set」的正确方法

兄弟,你这是把/usr/bin整个目录的权限递归改成755搞出的问题啦——sudo这个命令必须由root用户(uid 0)拥有,并且得开启setuid特殊权限位才能让普通用户以root身份执行命令,你改完权限把这些关键设置都冲没了。别慌,按下面的步骤一步步来修复:

  • 第一步:获取root权限
    现在sudo用不了,得先拿到root权限才能操作:

    • 如果你知道root密码:直接在终端输入su -,然后输入root密码,回车后就切换成root用户了。
    • 如果你不知道root密码:得进入单用户模式。重启电脑,在GRUB启动菜单里选中Fedora的条目,按e进入编辑模式,找到开头是linux的那一行,把里面的ro改成rw,然后在这一行的末尾加上init=/bin/bash,按Ctrl+X启动,系统会直接进入root权限的命令行环境。
  • 第二步:修复sudo的关键权限
    先把sudo本身的权限和属主改回正确状态,输入以下两个命令:

    chown root:root /usr/bin/sudo
    chmod 4755 /usr/bin/sudo
    

    解释下:chown是把sudo的属主和属组设回root;chmod 4755里的4就是开启setuid位,确保普通用户执行sudo时能临时获得root权限。

  • 第三步:批量修复/usr/bin目录的系统默认权限
    你递归修改了整个/usr/bin的权限,除了sudo,像su、passwd这些系统命令也可能因为权限错误出问题。Fedora可以用rpm工具批量恢复所有系统文件的默认权限和属主,输入这两个命令:

    rpm --setperms -a
    rpm --setugids -a
    

    --setperms -a会恢复所有rpm包安装文件的权限,--setugids -a则恢复它们的属主和属组。

  • 第四步:验证修复效果
    如果是通过su -进入root的,输入exit回到普通用户,然后试试sudo ls这类命令,应该不会再报错了;如果是单用户模式进来的,输入exec /sbin/init重启系统,之后正常登录再测试sudo功能即可。

备注:内容来源于stack exchange,提问作者37buEr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 08:08:04