不能做 sudo:“/etc/sudoers 是模式 0740,应该是 0440”

deh*_*ann 4 sudo administration macos

我有个问题:

我的 mac 上没有 root 密码。我只有一个管理员帐户,可以使用sudo. 现在,我也想将我的普通用户添加到/etc/sudoers文件中。由于它不允许我写入该文件(甚至使用 sudo 写入),我这样做了:

sudo chmod u+w /etc/sudoers
Run Code Online (Sandbox Code Playgroud)

那奏效了。但从那以后我不能sudo再在我的系统上执行任何命令。它抱怨/etc/sudoers模式错误:

$ sudo touch /etc/sudoers 
sudo: /etc/sudoers is mode 0740, should be 0440
Segmentation fault
Run Code Online (Sandbox Code Playgroud)

这听起来像是一个坏笑话,因为现在我什至无法将模式改回0440

$ sudo chmod 0440 /etc/sudoers 
sudo: /etc/sudoers is mode 0740, should be 0440
Segmentation fault
Run Code Online (Sandbox Code Playgroud)

有什么办法可以解决这种情况吗?我需要恢复我的sudo能力。

Spi*_*iff 7

这可能是从“磁盘工具”运行“修复磁盘权限”实际上可能得​​到保证的极少数情况之一。

如果这不起作用,请按照@slhck 的建议启动到单用户模式来修复它:

  1. 重新启动,按住 Command-S 进入单用户模式。请注意,如果您使用的是蓝牙键盘,则需要在启动铃声逐渐减弱时点击此按钮。如果您过早按下它,则是在蓝牙无线电重置并且键盘失去连接并且无法与按键通信之前。如果你太晚了,启动过程将转移到多用户启动。

  2. 按照屏幕上的说明重新安装根驱动器读写。fsck如果您优雅地重新启动,您可能可以跳过该步骤。所以你可能只需要输入:

    mount -uw /

  3. 修复 上的权限/etc/sudoers。请注意,您已经root处于单用户模式,因此您不需要这样做sudo

    chmod 0440 /etc/sudoers

  4. 通过再次重新启动退出单用户模式,只需键入:

    reboot