问题
升级到 MacOS Monterey 以后会强行恢复 sudoers 文件到默认状态,即使用户在 admin 组里也无法使用 sudo
当然,此时也是无法修改 sudoers 文件的
过程
在谷歌搜索了一下,果然已经有人遇到了类似问题,在解决过程中参考了外网的3篇帖子
尝试
首先找到了这篇帖子: r/MacOS,虽然没有解决问题,但从中学到了从Finder里直接拷贝系统文件的方法,需要权限时会弹框确认(指纹or密码)
SHIFT + CMD + .
显示隐藏文件- 拷贝
/etc/sudoers
文件到可编辑目录 - 修改文件,加入我的用户(比如user)和免密设置,如下
|
|
- 再从 Finder 里直接拷贝修改后的问题替换原文件
- 此时执行 sudo 命令仍然会报错
sudo: /etc/sudoers is owned by uid xxx, should be 0
解决uid问题
之后又在 StackExchange 里学到了两种方式解决这个问题:
- 开机按
CMD + S
进入 recovery 模式,以root权限执行如下命令后,即可解决
|
|
- 利用 Apple Script 修改文件权限,弹框确认权限(指纹or密码)
|
|
后记
事实上,完全可以直接用Apple Script修改 /etc/sudoers
文件,比如 这篇文章 里提到的方式
创建一个 /tmp/sudoers
文件,按需修改,然后直接替换 /etc/sudoers
文件即可,如下
|
|