Root權限通行證:Sudo(原創)


Sudosubstitute user [ superuser] do),是一種程式,用於類Unix作業系統如BSDMac OS X,以及GNU/Linux以允許使用者透過安全的方式使用特殊的權限執行程式(通常為系統的超級使用者)。在sudo1980年前後被寫出之前,一般使用者管理系統的方式是利用su切換為超級使用者。但是使用su的缺點之一在於必須要先告知超級使用者的密碼。

sudo使一般使用者不需要知道超級使用者的密碼即可獲得權限。首先超級使用者將普通用戶的名字、可以執行的特定命令、按照哪種用戶或用戶組的身份執行等信息,登記在特殊的檔案中(通常是/etc/sudoers),即完成對該使用者的授權(此時該使用者稱為「sudoer」);在一般使用者需要取得特殊權限時,其可在命令前加上「sudo」,此時sudo將會詢問該使用者自己的密碼(以確認終端機前的是該使用者本人),回答後系統即會將該命令的進程以超級使用者的權限執行。之後的一段時間內(預設為5分鐘,可在/etc/sudoers自訂),使用sudo不需要再次輸入密碼。由於不需要超級使用者的密碼,部分Unix系統甚至利用sudo使一般使用者取代超級使用者作為管理帳號,例如UbuntuMac OS X等。

Sudo命令的實現規則是在/etc/sudoers中定義的,這個文件只有管理員能夠編輯,並且有專用的編輯工具visudo。如果想了解它們的詳細用法可以使用man命令進行查看。

我們先來看一個應用:

我們在/etc/sudoers中定義好之後我們需要使用sudo命令再接被允許的管理命令。

Sudo

參數

-b 在後臺執行指令。

-h 顯示幫助。

-H HOME環境變量設爲新身份的HOME環境變量。

-k 結束密碼的有效期限,也就是下次再執行sudo時便需要輸入密碼。

-l 列出目前用戶可執行與無法執行的指令。

-p 改變詢問密碼的提示符號。

-s 執行指定的shell

-u <用戶> 以指定的用戶作爲新的身份。若不加上此參數,則預設以root作爲新的身份。

-v 延長密碼有效期限5分鐘。

-V 顯示版本信息。

     -S   從標準輸入流替代終端來獲取密碼

在定義命令是可以使用別名機制,有用戶別名、主機別名、授權身份別名、命令別名:

別名可以嵌套,命令別名可以使用目錄,表示此目錄下的所有命令,"sudoedit"(表示可以編輯sudoers文件)

我們看到如果給centos添加可以使用passwd命令的話,默認它還可以更改root的密碼,這就太危險啦,所以可以使用!取反除去root

我們一直輸密碼很煩人對吧,可以使用NOPASSWD關鍵字定義不輸密碼,PASSWD定義使用密碼。

可以在安全日誌中看到每一個sudo的運行情況。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章