Zsh 检测不安全的依赖完成的目录

Met*_*ers 41 macos zsh hyperterminal oh-my-zsh

当我打开终端 Hyper 时,收到以下错误消息:

[oh-my-zsh] Insecure completion-dependent directories detected:
drwxrwxr-x  7 dwaynethe2nd  admin  224 Apr 25 15:00 /usr/local/share/zsh
drwxrwxr-x  4 dwaynethe2nd  admin  128 Apr 25 14:53 /usr/local/share/zsh/site-functions
Run Code Online (Sandbox Code Playgroud)

run*_*nar 100

这是 ZSH(您的 shell)的问题,而不是 Hyper(您的终端)的问题。事实上,我今天早些时候也遇到了同样的问题。这个问题在 Github 上有一些解决方案,我将在这里引用其中的一些解决方案,但我建议您点击链接并阅读那里的评论。

第一个解决方案是更改有问题的目录的所有权:

在不了解您的环境的情况下,我不会建议您这样做,但对于大多数人来说,这可以解决问题。

chmod 755 /usr/local/share/zsh
chmod 755 /usr/local/share/zsh/site-functions
Run Code Online (Sandbox Code Playgroud)

第二种解决方案是在文件中设置ZSH_DISABLE_COMPFIX=true(或"true"用引号引起来).zshrc,告诉 ZSH 不要检查不安全的目录。

第三个解决方案,也是为我解决问题的解决方案,是使用标志初始化 compinit -u。这将使用找到的所有目录,compaudit而不检查它们是否存在安全问题。为此,您必须更改.zshrc文件或配置自动完成的位置。

  • 大家好,我在 macOS 中有两个帐户。因此,我们不应该使用第一种解决方案。我们都知道第二种解决方案没有意义。第三种解决方案,我总是遇到标准用户的权限问题(管理员帐户拥有的文件夹) (5认同)
  • 我使用错误消息建议的命令删除组和其他人的写入权限。我认为这只是要求更多地锁定它,但这并不是一个明确的错误消息。`comaudit | xargs chmod gw,ow` (3认同)
  • 嗨,这可能会晚一些,但有人可以解释一下这个警告错误到底意味着什么吗?OMZ 似乎添加了上述解决方案作为修复此错误的参考,但我想了解我在这里到底解决了什么。谢谢! (2认同)

Azi*_*bro 17

在我的 Mac 上,有帮助的是运行brew doctor

该程序告诉我要运行的确切命令!