首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >zsh compinit:不安全的目录

zsh compinit:不安全的目录
EN

Stack Overflow用户
提问于 2012-12-07 19:34:44
回答 24查看 232.1K关注 0票数 630

它意味着什么,我如何修复它?

代码语言:javascript
复制
zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]?

运行

返回以下内容:

代码语言:javascript
复制
There are insecure directories:
/usr/local/share/zsh/site-functions
EN

回答 24

Stack Overflow用户

回答已采纳

发布于 2012-12-09 16:07:40

这为我解决了这个问题:

代码语言:javascript
复制
$ sudo chmod -R 755 /usr/local/share/zsh/site-functions

致谢:

zsh邮件列表上的帖子

编辑:

正如@biocyberman在评论中指出的那样。您可能需要更新

还有:

代码语言:javascript
复制
$ sudo chown -R root:root /usr/local/share/zsh/site-functions

在我的机器(OSX10.9)上,我不需要这样做,但YMMV。

EDIT2:

在OSX 10.11上,只有这样才行得通:

代码语言:javascript
复制
$ sudo chmod -R 755 /usr/local/share/zsh
$ sudo chown -R root:staff /usr/local/share/zsh

user:staff是OSX上正确的默认权限。

票数 832
EN

Stack Overflow用户

发布于 2014-03-31 11:54:47

代码语言:javascript
复制
compaudit | xargs chmod g-w

将完成此操作,请参见

http://www.wezm.net/technical/2008/09/zsh-cygwin-and-insecure-directories/

票数 617
EN

Stack Overflow用户

发布于 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

另一种方法是跳过这些检查,方法是使用

代码语言:javascript
复制
compinit -u

但我并不真的建议这样做,因为隐藏问题只会在短期内解决问题。

票数 215
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13762280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档