这意味着什么?我该如何解决?
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
当前回答
在莫哈韦沙漠,这招奏效了: Sudo chmod go-w /usr/local/share
(2022年更新)
如果使用ZSH补全,你应该使用chmod -R go-w "$(brew——prefix)/share"
其他回答
今天早上,我的系统中的一些包更新了,并给我留下了这个错误消息。我使用的是Ubuntu 18.04。
显然,更新中的某些内容将用户名和组更改为数字,而不是root,如下所示:
# There are insecure files: /usr/share/zsh/vendor-completions/_code
# sudo ls -alh
-rw-r--r-- 1 131 142 2.6K 2019-10-10 16:28 _code
我只是将这个文件的用户和组改回root,问题就解决了。我不需要更改任何权限,并且警告不要这样做,除非了解问题的根本原因。
Sudo chown root _code && Sudo CHGRP root _code
在将131和142切换回根目录后,来自zsh的错误消息消失了。
接受的答案在macOs Sierra(10.12.1)上不适用。必须从/usr/local递归吗
cd /usr/local
sudo chown -R <your-username>:<your-group-name> *
注意:你可以用whoami获取你的用户名,用id -g获取你的组
我通过做来解决它
sudo chown -R root:staff /usr/local/share/zsh
在我的例子中,share/中的其他目录也分配了“staff”组
删除组写权限
compaudit | xargs chmod g-w
会成功的。
参见http://www.wezm.net/technical/2008/09/zsh-cygwin-and-insecure-directories/
我的机器:
System Version: macOS 10.15.4 (19E287)
Kernel Version: Darwin 19.4.0
这就是我所做的,
运行compaudit,它会给你一个它认为不安全的目录列表。 执行sudo chmod -R 755 target_directory命令 (例如:sudo chmod -R 755 /usr/local/share/zsh)
例子:
compaudit
返回:
/usr/local/share/zsh
所以我跑了
sudo chmod -R 755 /usr/local/share/zsh
点击这里阅读更多链接