目录

mac 终端启动提示:zsh compinit insecure directories

一、问题

macOS后首次打开终端,都会弹出一串红色提示(如下)

每次启动都要手动确认,既麻烦又影响使用体验。

mac终端一打开就报错该怎么办,那么应该如何解决呢?

今天就把完整的解决思路和步骤整理出来,希望能够帮助大家快速解决,提高效率。

mac@fiveyoboy ~ % 
zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]?

二、原因

出现这个原因就是提示不安全的目录,是否忽略。

也就是某些关键目录的权限过高(比如其他用户也有写入权限),就会判定为“不安全目录”,从而弹出警告。

出现这种情况的场景比较多:

  • 1.是升级macOS后系统权限自动调整
  • 2.是手动安装zsh插件时误改了目录权限
  • 3.是使用brew等工具安装软件时,附带修改了相关目录的权限配置

但是解决方法都一样

三、解决

打开终端先执行:

compaudit

查看一下列出的目录不安全的目录,以下是我的目录

There are insecure directories: /opt/homebrew/share/zsh/site-functions /opt/homebrew/share/zsh

然后执行以下语句给对应的目录赋权限即可

 sudo chmod -R 755 /opt/homebrew/share/zsh/site-functions
 sudo chmod -R 755 /opt/homebrew/share/zsh

之后再启动就不会有问题了

常见问题

Q1:执行sudo chmod后提示“Operation not permitted”怎么办?

这是因为macOS的SIP(系统完整性保护)功能限制了对部分系统目录的修改。

解决方法:重启Mac,开机时按住Command+R进入恢复模式,打开“终端”,输入csrutil disable关闭SIP,重启后再修改权限,修改完成后建议重新开启SIP(恢复模式下执行csrutil enable)。

Q2:修复后重启终端,错误提示还在?

大概率是有遗漏的不安全目录。

重新执行compaudit命令,看看是不是有新的目录被列出来,然后按照第二步的方法逐个修复。

Q3:不同macOS版本(如Sonoma/Ventura)解决方法通用吗?

通用。这个错误的核心是zsh的权限检查机制,和具体macOS版本关系不大,只要按照步骤操作就能解决

总结

这个zsh启动错误本质是权限配置问题,核心就是通过compaudit定位问题目录,再用chmod调整权限。如果怕遗漏或误操作,用我写的Go脚本验证一下更放心。要是遇到SIP限制之类的问题,按照常见问题里的方法处理就行。

如果还有其他终端问题,欢迎在评论区留言讨论~

版权声明

未经授权,禁止转载本文章。
如需转载请保留原文链接并注明出处。即视为默认获得授权。
未保留原文链接未注明出处或删除链接将视为侵权,必追究法律责任!

本文原文链接: https://fiveyoboy.com/articles/mac-cmd-err-zcid/

备用原文链接: https://blog.fiveyoboy.com/articles/mac-cmd-err-zcid/