別名(alias)使用問題 [論壇 - Ubuntu 養蟲箱 - bug share]
正在瀏覽:
1 名遊客
別名(alias)使用問題 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2008/10/7 21:19 所屬群組:
已註冊使用者 等級: 36
HP : 0 / 896
![]() |
對於Linux中的alias指令有個疑問,也不知道算不算蟲
假設下了這樣的指令: $alias alias='cd /' $alias unalias='cd /' 可以想見會出現alias無法重新被合理利用的情況,請問如果發生這種情形有辦法可以解除這個alias「被鎖定」的現象嗎? 我用LiveDVD的確弄出這個結果,如果認真攻擊這點的話有沒有可能變成一種Linux病毒程式 以上,謝謝
2009/1/25 2:32
|
||||||||||
I′m UGP
|
|||||||||||
![]() |
訪客
|
回覆: 別名(alias)使用問題 |
|
---|---|---|
Anon:訪客
|
alias 是一種「使用者環境變數」
每位使用者 user 帳號,有它自己的環境變數 該環境變數登出後就會消失,下次再登入不會保留 環境變數最常見的,例如 path 路徑變數,PS1 命令提示字串。 假設有一個帳號叫 UGP,他設定了一個 alias 環境變數,只有他自己有作用而已,其它使用者不受影響。 由於環境變數登出後就會消失 那麼系統原先預設的環境變數是怎麼來的? 應該有一個檔案早就寫好了,以便登入時載入吧? 是的,沒錯 環境變數主要由兩個設定檔做控制: -------------------------------- 1./etc/profile 是全域型的,所有使用者包括 root,登入時都會跑這個檔一次,其內容為 shell script 語法,但檔頭第一行不必宣告。 2. ~/.bashrc 在每位使用者的家目錄底下,如果該使用者的預設 shell 是 bash,登入時就會參考 .bashrc 中的設定。內容也是 shell sciprt 語法,檔頭第一行不必宣告。 可以把這二檔,看作是 windows 底下 autoexec.bat 這類的東西。 ------------------------------------- 至於這種東西,有沒有可能成為病毒程式? 這麼講吧,比如說這個 Linux 指令:rm -rf / 如果以 root 權限身份來執行,會發生什麼事情? 答案是:會把硬碟中所有資料,全部刪除 那如果把這類指令寫成 .sh 檔(自動執行批次檔,腳本檔) 不要說 rm -rf / (畢竟要 root 才能執行) rm -rf ~ 就好(刪除自己家目錄,一般使用者可執行) 然後騙人說:這是某某好用軟體的安裝檔 install.sh 關鍵在:電腦病毒的定義,是它必須具有感染其它檔案的能力。所以充其量這類腳本只能算惡意程式,不是病毒。 相當於 windows 下來講的話 也能寫個 install.bat 騙人說是某某好用軟體安裝檔,點兩下就可安裝 然後內容寫什麼都可以 比如 del c:\windows/*.* 或 deltree c:\windows 什麼的 效果類似,尤其用 windows 的人多半直接用 admin 帳號登入,破壞力更強。不過 windows 使用中檔案會拒絕刪除,也許無法整顆硬碟清空,但也能嚴重破壞系統檔案導致無法開機。 ----------------------------------------- 關於類似的招數 還有:在某個目錄中,偽造一個系統指令,比如 ls Linux 系統下,副檔名只是參考用的,和檔案類型或可不可執行無關,就算副檔名都不加,也能執行。 所以 ls 這兩個字的檔案,也可以是 shell script 腳本,賦予執行權限,就能執行。 假設今天有一位 root,跑到某位使用者的家目錄底下 想查看他家目錄底下有什麼檔案,要打什麼指令? 沒錯,就是 ls 那打了會不會中招? 答案是:不會 因為預設的 path 路徑變數,不會找 . (目前目錄) 這就為什麼在終端機底下,要執行程式 都得打:./檔案名稱 ,特別強調是在這個目錄底下的原因
2009/1/25 13:09
| 7ab5d 1b103 42c8a 3099a
|
|
![]() |
回覆: 別名(alias)使用問題 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員五級
![]() ![]() 註冊日期:
2008/10/7 21:19 所屬群組:
已註冊使用者 等級: 36
HP : 0 / 896
![]() |
嗯嗯,感謝,內容豐富也很淺而易懂
再問另外一個問題,雖然我沒試過,不過應該可以: 如果把重要的系統指令例如ls、shutdown等用alias設定成惡意的指令,應該也會造成不小的破壞吧,如: alias ls='sudo rm -rf /'
2009/1/28 15:04
|
||||||||||
I′m UGP
|
|||||||||||
![]() |
訪客
|
回覆: 別名(alias)使用問題 |
|
---|---|---|
Anon:訪客
|
這是可以的 但正如前面所說的:alias 是「使用者 個人 環境變數」 每位使用者(帳號登入者)都有自己的環境變數,彼此之間沒有關係。 所以這一招只能自爽而已,害不到人的。 舉個白話一點的例子 比方說,每個使用者都有自己的佈景主題、桌布 那把桌布圖片,改成恐怖的鬼,能否嚇到人? 答案是不行的,因為改的桌布,只有你自己能看到而已 別人用別的帳號登入,是看不見你的桌布的 alias 也是類似道理,使用者的個人化環境設定 但如果將 alais 的指令,寫到 shell script 中,騙人說那是某個有用的執行檔,要人去執行。 那個人執行後,就會在不知情的情況下 以自身的權限設定 alias 別名 例如 alias ls='sudo rm -rf /' 所以這就是為什麼 sudo 要打密碼的原因 執行任何東西,若跳出打密碼視窗,表示要進行升級 root 權限的動作。使用者必須自己確認這動作是否安全。
2009/1/28 19:04
| 7ab5d 1b103 42c8a 3099a
|
|
![]() |
您可以查看帖子.
您不可發帖.
您不可回覆.
您不可編輯自己的帖子.
您不可刪除自己的帖子.
您不可發起投票調查.
您不可在投票調查中投票.
您不可上傳附件.
您不可不經審核直接發帖.