使用 chmod 导致 zsh 损坏;尝试使用 compaudit 进行修复

使用 chmod 导致 zsh 损坏;尝试使用 compaudit 进行修复

我的 shell 是 Homebrew zsh。我的机器上没有 root 权限,但我有一个额外的帐户,具有提升的权限 —— 这只是我的工作需要设置,我对此无能为力 —— 我可以通过它执行 sudo 操作并使用 Homebrew 安装等。

无论如何,由于这些冲突的帐户,我无法让其他 Homebrew 的东西正常工作,因为权限问题。所以我这样做了:

sudo chmod -R a+rw /usr/local

现在这解决了我眼前的问题,但结果却破坏了我的 shell。每次我开始新的会话时,我都会得到以下内容(来自source $ZSH/oh-my-zsh.sh我的 中的行.zshrc):

compdef: unknown command or service: git
compdef: unknown command or service: git

...然后是提示。此外,制表符补全不再起作用。但是其他插件仍在运行。

我尝试过改变我的鲁莽行为chmod,并遵循使用指南compaudit(例如,参见这里),但似乎并没有解决问题。

出于无奈,我还尝试从 Homebrew 中完全卸载并重新安装 zsh。这似乎改变了 的输出compaudit,以至于它现在还包含 中的很多内容/usr/local/Cellar/zsh/5.2/share/zsh/functions。但是,据我所知,这里的所有内容(包括所述目录)都具有正确的所有权(my_admin:admin)和权限(0744)。同样,其他compaudit抱怨的内容似乎都很好。

所以我有点困惑!我下一步该怎么做?


更新所以我尝试了这个:

sudo chmod -R MODE /usr/local/share/zsh /usr/local/Cellar/zsh/5.2/share/zsh

...我曾尝试MODE0777074407540550

第一个给出了原始问题——但需要注意的是,某些插件导致所有键盘输入失败——其余的(即对非所有者的访问受限)导致许多 zsh/Oh My Zsh 定义无法加载,然后在 Oh My Zsh 尝试加载插件时导致后续错误。具体来说,它抱怨colors和不再被定义(类似地,如果我尝试compinit,它会失败)。compdefcompaudit

我完全搞不懂到底发生了什么,为什么权限设置会造成如此大的混乱。在我把自己完全锁在外面之前,我打算停止实验,但如果有人能提出如何解决这个问题的建议,我将非常欢迎!

相关内容