mingyunyuziyou

安装OhMyZsh插件后提示错误:“zsh compinit: insecure directories”

作者: 秒速五厘米     
 


问题描述:

  1. 安装(手动下载)完zsh插件后,执行 source ~/.zshrc,显示以下提示:

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


img


原因分析

警告中出现 compaudit ,通过资料得知

compaudit 的原理

出于安全原因,compinit 还会检查补全系统是否会使用不属于 root
或当前用户所有的文件,或者目录中的文件是全局或组可写的,或者不属于 root
或当前用户所有的文件。如果找到这样的文件或目录,compinit
会询问是否真的应该使用补全系统。为避免这些测试并使找到的所有文件无需询问即可使用,
请使用选项 -u,并使用选项 -i 使 compinit安装OhMyZsh插件后提示错误:
“zsh compinit: insecure directories”
静默忽略所有不安全的文件和目录。当给出 -C 选项时,将完全跳过此安全检查。


运行compaudit命令返回不安全的目录:

There are insecure directories:
/usr/local/share/zsh/site-functions
/usr/local/share/zsh


解决方法

执行以下命令修改权限shell

cd /usr/local/share/zsh
sudo chmod -R 755 site-functions


再次执行 source ~/.zshrc,若是问题还未解决,这时你就须要修改 site-functions 的全部者

OSX 10.9及如下系统执行以下命令:

cd /usr/local/share/
sudo chown -R root:root site-functions

OSX 10.9以上系统执行以下命令(user:staff 是 OSX 系统默认权限):

cd /usr/local/share/
sudo chmod -R 755 zsh
sudo chown -R root:staff zshphp artisan make:auth


再次执行 source ~/.zshrc,OK!