这意味着什么?我该如何解决?
zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]?
运行compaudit将返回如下结果:
There are insecure directories:
/usr/local/share/zsh/site-functions
这意味着什么?我该如何解决?
zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]?
运行compaudit将返回如下结果:
There are insecure directories:
/usr/local/share/zsh/site-functions
当前回答
这个答案主要是我自己在未来使用的参考,因为大多数答案都没有提供一个成熟的解决方案。下面就是:
第一次运行:
compinit
如果以上都不起作用,请使用compaudit
对于打印的每个路径,运行以下命令:
sudo chown $(whoami) PATH_HERE
sudo chmod -R 755 PATH_HERE
简单的例子,假设运行compinit后打印的路径之一是“/usr/local/share/zsh”。然后:
sudo chown $(whoami) /usr/local/share/zsh
sudo chmod -R 755 /usr/local/share/zsh
其他回答
注:此答案为2012年数据。
这为我解决了问题:
$ sudo chmod -R 755 /usr/local/share/zsh/site-functions
出处:zsh邮件列表上的一个帖子
编辑:正如@biocyberman在评论中指出的那样。您可能还需要更新站点函数的所有者:
$ sudo chown -R root:root /usr/local/share/zsh/site-functions
在我的机器(OSX 10.9)上,我不需要这样做,但YMMV。
EDIT2:在OSX 10.11上,只有这样才能工作:
$ sudo chmod -R 755 /usr/local/share/zsh
$ sudo chown -R root:staff /usr/local/share/zsh
另外,user:staff是OSX上正确的默认权限。
我最近在卡特琳娜也收到了同样的警告。 一个简单的解决方法是将其放在.zshrc的顶部
ZSH_DISABLE_COMPFIX=true
在macOS Sierra上,你需要运行: sudo chown -R $(whoami):staff /usr/local
我在运行google-cloud-sdk安装脚本后得到了这个问题,该脚本通过.zshrc中的一个条目将命令补全添加到shell中。
按照Homebrew的说明在zsh中配置补全是有帮助的。
此外,如果你在尝试加载这些补全时收到" zsh compinit: insecure directories "警告,你可能需要运行这个:chmod -R go-w "$(brew——prefix)/share"
删除组写权限
compaudit | xargs chmod g-w
会成功的。
参见http://www.wezm.net/technical/2008/09/zsh-cygwin-and-insecure-directories/