Re: [問題] 關於PATH的問題from鳥哥的Linux私房菜

看板Linux作者 (好人超)時間14年前 (2011/06/10 21:26), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《ForOthers (為了某些事)》之銘言: : 小弟是Linux的新手.. : 目前正努力啃著鳥哥的網路教材.. : 有段話小弟始終搞不懂鳥哥所說的狀況.. : "例題:為什麼PATH搜尋的目錄不加入本目錄(.)?加入本目錄的搜尋不是也不錯? : 如果在PATH中加入本目錄(.)後,確實我們就能夠在指令所在目錄進行指令的執行了。 : 但是由於你的工作目錄並非固定(常常會使用cd來切換到不同的目錄),因此能夠執行 : 的指令會有變動(因為每個目錄底下的可執行檔都不相同嘛!),這對使用者來說並非 : 好事。 假如你的 /home/ForOthers/dir1 與 /home/ForOthers/dir2 底下 各有一個執行檔叫做 hello.exe 雖然同樣的名字,但是做的事情卻不同 這個時候當你位於不同的目錄,執行 hello.exe 時,就會有不同的結果 如果你沒有把 . 設在 PATH 裡,使用者就要用絕對路徑去執行 (或者按照 PATH 的順序去找到執行檔) 這樣執行的結果就是固定的、可以預期的 : 另外,如果有個壞心使用者在/tmp底下做了一個指令,因為/tmp是大家都能夠寫入的 : 環境,所以他當然可以這樣做。假設該指令可能會竊取使用者的一些資料,如果你使 : 用root的身份來執行這個指令,那不是很糟糕?如果這個指令的名稱又是經常會被用 : 到的ls時,那『中標』的機率就更高了!" 所有使用者都可以在 /tmp 底下放東西 如果有個使用者寫了一個程式,對於系統是有破壞性的 譬如程式做了這樣的事 rm -rf / 然後這個使用者又把這隻程式叫做 ls 當 root 執行 cd /tmp; ls 的時候,執行了 /tmp/ls 這樣就會執行這隻惡意程式了 如果你沒有把 . 設在 PATH 裡面 即使有隻惡意的 /tmp/ls 存在,而且你在 /tmp 底下執行了 ls 這樣執行的仍然是 /bin/ls,而不會執行了這隻惡意程式 : 不知道有哪位先進可以各別對紅色字和黃色字各舉一個例子呢?? : 小弟駑鈍無法體會鳥哥所說的話阿..~"~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.117.171.46
文章代碼(AID): #1DyXjrlM (Linux)
文章代碼(AID): #1DyXjrlM (Linux)