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

Mac OS High Sierra下sudo命令报错(sudoers语法错误)的解决方法

修复Mac OS High Sierra下空sudoers文件导致的sudo错误

别担心,这个问题核心就是/etc/sudoers文件为空,导致sudo无法解析权限规则,咱们可以通过Mac的恢复模式来修复,步骤如下:

步骤1:进入恢复模式

重启你的Mac,开机过程中按住Command + R,直到屏幕出现苹果标志或进度条,等待进入恢复模式界面。

步骤2:打开终端

在恢复模式的顶部菜单栏,点击「实用工具」→「终端」,调出终端窗口。

步骤3:挂载系统盘为可读写模式

恢复模式下系统盘默认是只读状态,得先改成可读写:

  1. 先查看系统盘的标识符,执行命令:
    diskutil list
    
    在输出里找标注为APFS Volume(或Mac OS Extended)的系统盘,通常标识符是/dev/disk1s1,对应挂载点是/Volumes/Macintosh HD(如果你的磁盘改了名字,就用实际名称)。
  2. 执行挂载命令(把diskXsY替换成你找到的标识符):
    diskutil mountRW /dev/diskXsY
    
    看到提示“Volume ... mounted successfully”就说明挂载成功了。

步骤4:重建sudoers文件

现在咱们创建一个符合Mac默认配置的sudoers文件:

  1. 执行以下命令(如果系统盘不是Macintosh HD,替换成实际名称):
    cat > /Volumes/Macintosh\ HD/etc/sudoers << 'EOF'
    # sudoers file.
    #
    # This file MUST be edited with the 'visudo' command as root.
    #
    # See the sudoers man page for the details on how to write a sudoers file.
    #
    
    Defaults        env_reset
    Defaults        env_keep += "BLOCKSIZE"
    Defaults        env_keep += "COLORFGBG COLORTERM"
    Defaults        env_keep += "__CF_USER_TEXT_ENCODING"
    Defaults        env_keep += "CHARSET LANG LANGUAGE LC_ALL LC_COLLATE LC_CTYPE"
    Defaults        env_keep += "LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME"
    Defaults        env_keep += "LINES COLUMNS"
    Defaults        env_keep += "LSCOLORS"
    Defaults        env_keep += "SSH_AUTH_SOCK"
    Defaults        env_keep += "TZ"
    Defaults        env_keep += "DISPLAY XAUTHORIZATION XAUTHORITY"
    Defaults        env_keep += "EDITOR VISUAL"
    Defaults        env_keep += "HOME MAIL"
    
    root            ALL=(ALL) ALL
    %admin          ALL=(ALL) ALL
    %wheel          ALL=(ALL) ALL
    EOF
    
  2. 设置正确的文件权限(sudoers必须是440权限,归属root:wheel):
    chmod 440 /Volumes/Macintosh\ HD/etc/sudoers
    chown root:wheel /Volumes/Macintosh\ HD/etc/sudoers
    

步骤5:验证sudoers文件语法

执行命令检查文件是否有语法错误:

visudo -c -f /Volumes/Macintosh\ HD/etc/sudoers

如果输出显示/Volumes/Macintosh HD/etc/sudoers: parsed OK,说明文件没问题。

步骤6:重启系统

关闭终端窗口,在恢复模式界面点击「苹果菜单」→「重启」,回到正常系统后,测试一下sudo ls命令,应该就能正常执行了。

内容的提问来源于stack exchange,提问作者CUH

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:37:16