这意味着什么?我该如何解决?
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
当前回答
更新所有权限正确的文件/文件夹:
Compaudit | xargs chmod g-w
您不需要使用sudo更改所有者-除非文件属于root
(在macOS BigSur上测试)
其他回答
在莫哈韦沙漠,这招奏效了: Sudo chmod go-w /usr/local/share
(2022年更新)
如果使用ZSH补全,你应该使用chmod -R go-w "$(brew——prefix)/share"
我在运行google-cloud-sdk安装脚本后得到了这个问题,该脚本通过.zshrc中的一个条目将命令补全添加到shell中。
按照Homebrew的说明在zsh中配置补全是有帮助的。
此外,如果你在尝试加载这些补全时收到" zsh compinit: insecure directories "警告,你可能需要运行这个:chmod -R go-w "$(brew——prefix)/share"
我得到这个问题在过去的5个月尝试了一些事情,但没有工作。最后帮助我的是这个。获取不安全目录的列表,然后按照下面的描述设置所有这些目录的chmod。
CLI# compaudit
There are insecure directories:
/usr/local/share/zsh
CLI# sudo chmod -R 755 /usr/local/share/zsh
Password:
注:此答案为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上正确的默认权限。
这适用于我的Mac,因为High Sierra更新。
取消组写权限:
sudo chmod g-w /usr/local/share/zsh/site-functions
sudo chmod g-w /usr/local/share/zsh
最好将更改限制在zsh目录中。