无法运行sudo且/var/db/sudo目录为空的无sudo权限修复方案咨询
修复sudo无法运行的问题(无sudo权限情况下)
这种情况确实闹心——没sudo权限还得修sudo的问题,不过咱们可以通过Mac的单用户模式或者恢复模式直接获取root权限,来修复出问题的sudo目录。下面给你分步讲两种方法,你选顺手的来:
方法一:单用户模式修复(优先尝试)
- 重启你的Mac,在开机过程中按住 Command + S 不放,直到屏幕出现黑底白字的命令行界面,这就是单用户模式了。
- 先修复磁盘文件系统(避免是磁盘错误导致的目录异常):
- 如果你的Mac是APFS格式(现在大部分新Mac都是),执行命令:
/sbin/fsck_apfs -y / - 如果是老款的HFS+格式,执行:
/sbin/fsck -fy /
等命令跑完,看到文件系统已被修复之类的提示再往下走。
- 如果你的Mac是APFS格式(现在大部分新Mac都是),执行命令:
- 把根目录挂载为可读写模式(默认单用户模式是只读,没法修改文件):
/sbin/mount -uw / - 创建缺失的
ts目录并设置正确权限:mkdir -p /var/db/sudo/ts chmod 700 /var/db/sudo /var/db/sudo/ts chown root:wheel /var/db/sudo /var/db/sudo/ts - 执行完后输入
reboot重启Mac,进入正常系统后试试sudo命令,应该就能正常用了。
方法二:恢复模式修复(如果单用户模式无效)
如果单用户模式进不去或者操作后还是报错,就用恢复模式试试:
- 重启Mac,开机过程中按住 Command + R 不放,直到出现 macOS 实用工具界面。
- 点击顶部菜单栏的「实用工具」→「终端」,打开命令行窗口。
- 先找到你的系统磁盘路径:执行
diskutil list,在输出里找标注为Apple_APFS Container或者Macintosh HD的磁盘,记下它的挂载路径(比如/dev/disk1s1)。 - 挂载磁盘为可读写:
(把diskutil mount /dev/disk1s1/dev/disk1s1替换成你刚才找到的实际路径) - 进入系统磁盘的根目录(假设你的磁盘名称是「Macintosh HD」):
cd /Volumes/Macintosh\ HD - 同样创建
ts目录并设置权限:mkdir -p var/db/sudo/ts chmod 700 var/db/sudo var/db/sudo/ts chown root:wheel var/db/sudo var/db/sudo/ts - 也可以顺便修复磁盘权限:
diskutil repairVolume /Volumes/Macintosh\ HD - 关闭终端,点击「重启」回到正常系统,再测试sudo命令即可。
内容的提问来源于stack exchange,提问作者Nanogamer7
相关产品推荐
相关产品推荐

