它意味着什么,我如何修复它?
zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]?
运行
返回以下内容:
There are insecure directories:
/usr/local/share/zsh/site-functions
发布于 2012-12-09 16:07:40
这为我解决了这个问题:
$ sudo chmod -R 755 /usr/local/share/zsh/site-functions
致谢:
zsh邮件列表上的帖子
编辑:
正如@biocyberman在评论中指出的那样。您可能需要更新
还有:
$ sudo chown -R root:root /usr/local/share/zsh/site-functions
在我的机器(OSX10.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上正确的默认权限。
发布于 2014-03-31 11:54:47
compaudit | xargs chmod g-w
将完成此操作,请参见
http://www.wezm.net/technical/2008/09/zsh-cygwin-and-insecure-directories/
发布于 2017-04-21 22:02:03
大多数答案都提供了解决方案,但没有提到为什么会出现此警告。以下是ZSH的摘录
compinit
出于安全原因,compinit还检查完成系统是否使用
不属于root或当前用户的文件
,或者
目录中的文件是全局或组可写的,或者不归root或当前用户所有
..。如果找到这样的文件或目录,compinit会询问是否真的应该使用完成系统。要避免这些测试并在没有询问的情况下使用找到的所有文件,请使用选项-u,要使compinit静默忽略所有不安全的文件和目录,请使用选项-i。当给定-C选项时,将完全跳过此安全检查。
因此,该解决方案意味着修复以下一项(或全部):
将当前用户设置为原因中所有目录/子目录/文件的所有者:
compaudit | xargs chown -R“$(-R)”
正在删除组/其他人对原因中文件的写入权限:
compaudit | xargs chmod go-w
另一种方法是跳过这些检查,方法是使用
compinit -u
但我并不真的建议这样做,因为隐藏问题只会在短期内解决问题。
https://stackoverflow.com/questions/13762280
复制相似问题