这意味着什么?我该如何解决?
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
当前回答
发送一个y字符到脚本的输入流使用compinit,以自动回答忽略不安全的目录和文件,并继续[y]或abort compinit [n]?问题
echo "y" > source <GOOGLECLOUDSDK>/ complete .zsh.inc .
解决方案是有用的
不能对文件夹进行所有权/访问更改 当你不能使用-u选项来删除警告时(可能是因为你自己没有显式地调用'compinit',但它是由你调用的脚本调用的)
备注:它不会修复问题,只是隐藏了警告(与这里涉及删除“组写访问权限”或“更改所有权到根”的其他答案相反)。
其他回答
我没有看到任何关于这个主题的自制信息的回答:https://docs.brew.sh/Shell-Completion#configuring-completions-in-zsh
要使Homebrew的完成功能在zsh中可用,必须在初始化zsh的完成功能之前在FPATH上获得Homebrew管理的zsh site-functions。将以下内容添加到~/。zshrc中:
if type brew &>/dev/null; then
FPATH=$(brew --prefix)/share/zsh/site-functions:$FPATH
autoload -Uz compinit
compinit
fi
这必须在调用compinit之前完成。
这为我解决了问题,无需手动更改所有权或其他方式。
我通过做来解决它
sudo chown -R root:staff /usr/local/share/zsh
在我的例子中,share/中的其他目录也分配了“staff”组
我的建议是运行compaudit,然后修复由审计发现的目录的权限。 确保识别的目录没有组或其他的写权限。
在我的mac OS Catalina上运行这个命令是有效的:
Compaudit | xargs chmod g-w,o-w
接受的答案在macOs Sierra(10.12.1)上不适用。必须从/usr/local递归吗
cd /usr/local
sudo chown -R <your-username>:<your-group-name> *
注意:你可以用whoami获取你的用户名,用id -g获取你的组