Bash

添加 ./bin 是個壞主意

  • February 17, 2019

我想不出任何理由為什麼添加./bin到我的PATH環境中會是一個非常糟糕的主意。

我通常bin在我正在工作的項目中創建文件夾,我討厭這樣做,只要我在帶有文件夾的目錄中並且該文件夾包含執行檔bin/command,就可以被 bash 拾取。command``bin``bin``command

我需要說服力:D

和通常$HOME/bin被視為安全風險../bin

因為$HOME/bin這是一些“破解者”將一些腳本(比如名為 nano 的腳本)推送到該目錄的問題,然後它會等到您執行類似sudo nano /etc/hosts獲得即時 root 訪問權限的東西(將 nano 更改為 vi、emacs 等等;命令不重要,它是它可以執行的有效負載)。

對於.and ./bin,它仍然是同樣的問題:添加一個從錯誤目錄工作的額外程序。

如果這些 ./bin/command 位於不同的目錄而不是 /usr/local/bin (新的本地腳本的首選解決方案),那是因為它們做不同的事情;如果你跑錯了怎麼辦?

如果您以相同的方式命名命令(讓我們呼叫然後更新、送出、清理等),您可能正在處理一個目錄,然後您接到一個電話並切換到另一個電話以進行快速檢查。掛斷後,你的大腦會嘗試恢復你正在做的事情,並且大多數時候會忘記你所做的快速“cd”(特別是如果螢幕上的所有內容似乎都指向正確的目錄)並完成執行錯誤的命令目錄(比如說那個清除你一個月工作的清理腳本)。

這可能看起來是一個無辜的錯誤,但它們每天都發生在很多人身上!:)

一個好的解決方法(或更好的解決方案)是使用別名:

alias proj1-cleanup=/srv/proj1/bin/cleanup

並在腳本上添加正確cd的內容以確保它在正確的目錄上執行。

這樣,使用$HOME/.alias添加您需要的各種腳本,您可以使用不同的命令來執行不同的操作,即使有人破解您的瀏覽器以創建$HOME/bin/ls文件或某些本地使用者在任何目錄上創建 bin/ls 文件,那些永遠不會執行,因為您的路徑仍然指向正確的命令。

但是,嘿,這是個人選擇;你是知道你的本地風險是什麼以及命令做什麼的人。

引用自:https://unix.stackexchange.com/questions/67520