/usr/local/bin 應該歸根使用者所有嗎?
包管理器Homebrew(我在 OS X 上,但我對基於 Unix 的安全性感到好奇,因為它與目錄權限有關)將所有者設置
/usr/local/bin
為我的使用者(root
預設情況下,對嗎?),這意味著現在我可以通過簡單地將它們移動到/usr/local/bin
(sudo
不需要)來安裝執行檔。
- 我對此是否正確,通常
/usr/local/bin
由 擁有root
?- 與普通使用者交流不是
/usr/local/bin
一個巨大的安全問題嗎,因為現在我執行的任何軟體都可以代表我安裝程序而無需我的密碼?
從他們的常見問題解答中,這是為了避免在安裝軟體包時必須以 root 身份從 Internet 上執行任意程式碼的危險做法。對於大多數使用者來說,這是一個合理的折衷方案 - Homebrew 通常用於單人開發機器,而不是生產多使用者伺服器。
Homebrew 的設計目的是在不使用 sudo 的情況下工作。您可以決定使用它,但我們強烈建議您不要這樣做。如果您使用了 sudo 並遇到了錯誤,那麼這很可能是原因。請不要送出錯誤報告,除非您可以在不使用 sudo 從頭開始重新安裝 Homebrew 後重現它。
你應該只 sudo 一個你信任的工具。當然,您可以信任 Homebrew ;) 但是您是否信任 Homebrew 執行的數兆字節的 Makefile?開發人員通常對 C++ 的理解遠勝於對 make 語法的理解。sudo 這樣的東西風險太大。它可能會破壞您的基本系統,或巧妙地改變它。
事實上,我們已經看到一些建構腳本嘗試修改,
/usr
即使前綴被完全指定為其他東西。你吃過根
/Applications/TextMate.app
嗎?可能不是。那麼它有那麼重要chown root wget
嗎?如果您需要在多使用者環境中執行 Homebrew,請考慮創建一個單獨的使用者帳戶,特別是為了使用 Homebrew。
關於它為什麼不只安裝在您的 中
~
,請參閱前面的常見問題解答問題“為什麼 Homebrew 更喜歡我安裝/usr/local
?”。