【问题标题】:Zsh detects insecure completion-dependent directoriesZsh 检测到不安全的完成依赖目录
【发布时间】:2023-03-11 08:04:01
【问题描述】:

我在打开终端 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

【问题讨论】:

    标签: macos zsh oh-my-zsh hyperterminal


    【解决方案1】:

    这是 ZSH 的问题,你的 shell,而不是 Hyper,你的终端。我今天早些时候实际上遇到了同样的问题。 this issue on Github 中有一些解决方案,我会在这里引用其中的一些,但我建议您点击链接并阅读那里的 cmets。

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

    在不了解您的环境的情况下,我不会推荐此方法,但对于大多数人来说,这将解决问题:

    chmod 755 /usr/local/share/zsh
    chmod 755 /usr/local/share/zsh/site-functions
    

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

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

    【讨论】:

    • 我使用了错误信息建议的命令来删除组和其他人的写权限。我认为它只是要求将其锁定更多,但这不是一个明确的错误信息。 compaudit | xargs chmod g-w,o-w
    • @SalahAdDin:您尝试过所有三种解决方案吗?您是否看到任何错误消息或您想分享的任何其他信息?作为记录,它对我有用,我自己也在使用 macOS Catalina。
    • 我禁用了 zsh 功能。
    • 大家好,我在 macOS 中有两个帐户。所以,我们不应该使用第一个解决方案。我们都知道,第二种解决方案没有意义。第三种解决方案,我总是遇到我的标准用户(管理员帐户拥有的文件夹)的权限问题
    • 嗨,这可能会迟到,但有人可以解释这个警告错误的确切含义吗? OMZ 似乎已添加上述解决方案作为修复此错误的参考,但我想了解我在这里解决了什么。谢谢!
    【解决方案2】:

    在我的 Mac 上,运行 brew doctor

    有帮助

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

    【讨论】:

      【解决方案3】:

      重新安装 brew 为我解决了这个问题。

      卸载 brew:

      /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
      

      安装 brew:

      /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
      

      【讨论】:

        猜你喜欢
        • 2019-12-03
        • 2012-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多