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/