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能力。
这可能是从“磁盘工具”运行“修复磁盘权限”实际上可能得到保证的极少数情况之一。
如果这不起作用,请按照@slhck 的建议启动到单用户模式来修复它:
重新启动,按住 Command-S 进入单用户模式。请注意,如果您使用的是蓝牙键盘,则需要在启动铃声逐渐减弱时点击此按钮。如果您过早按下它,则是在蓝牙无线电重置并且键盘失去连接并且无法与按键通信之前。如果你太晚了,启动过程将转移到多用户启动。
按照屏幕上的说明重新安装根驱动器读写。fsck如果您优雅地重新启动,您可能可以跳过该步骤。所以你可能只需要输入:
mount -uw /
修复 上的权限/etc/sudoers。请注意,您已经root处于单用户模式,因此您不需要这样做sudo。
chmod 0440 /etc/sudoers
通过再次重新启动退出单用户模式,只需键入:
reboot
| 归档时间: |
|
| 查看次数: |
5966 次 |
| 最近记录: |