使用 chmod 損壞 zsh;嘗試用 compaudit 修復

使用 chmod 損壞 zsh;嘗試用 compaudit 修復

我有 Homebrew zsh 作為我的 shell。我的機器上沒有root權限,但我確實有一個具有提升權限的附加帳戶——這就是我的工作設定的方式,我對此無能為力——我可以在其中執行一些操作並使用 Homebrew 等安裝。

無論如何,由於這些相互衝突的帳戶,由於權限問題,我無法讓其他 Homebrew 的東西正常工作。所以我這樣做了:

sudo chmod -R a+rw /usr/local

現在這解決了我眼前的問題,但結果卻打破了我的外殼。每次我開始一個新會話時,我都會得到以下內容(來自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

……我MODE試過0777074407540550

第一個給出了最初的問題 - 需要注意的是某些插件導致所有鍵盤輸入失敗 - 其餘的(即非所有者的訪問受限)導致許多 zsh/Oh My Zsh 定義無法加載,然後當Oh My Zsh 嘗試載入插件時導致後續錯誤。具體來說,它抱怨colorscompinit並且compdef不再定義(同樣,如果我嘗試compaudit,它會失敗)。

我完全不知道發生了什麼/為什麼權限設定會造成如此大的破壞。在我完全把自己鎖在外面之前,我將停止實驗,但如果有人對如何解決這個問題有建議,我們將非常歡迎!

相關內容