1.簡介:
sudo是linux系統管理指令,是允許系統管理員讓普通用戶執行一些或者全部的root命令的一個工具,如halt,reboot,su等等。這樣不僅減少了root用戶的登錄 和管理時間,同樣也提高了安全性。sudo不是對shell的一個代替,它是面向每個命令的。
2.特性:
(1) sudo能夠限制用戶只在某台主機上運行某些命令。
(2)sudo提供了豐富的日志,詳細地記錄了每個用戶干了什么。它能夠將日志傳到中心主機或者日志服務器。
(3)sudo使用時間戳文件來執行類似的“檢票”系統。當用戶調用sudo並且輸入它的密碼時,用戶獲得了一張存活期為5分鍾的票(這個值可以在編譯的時候改變)。
(4) sudo的配置文件是sudoers文件,它允許系統管理員集中的管理用戶的使用權限和使用的主機。它所存放的位置默認是在/etc/sudoers,屬性必須為0440。
3.命令原理:
sudo使一般用戶不需要知道超級用戶的密碼即可獲得權限。首先超級用戶將普通用戶的名字、可以執行的特定命令、按照哪種用戶或用戶組的身份執行等信息,登記在特殊的文件中(通常是/etc/sudoers),即完成對該用戶的授權(此時該用戶稱為“sudoer”);在一般用戶需要取得特殊權限時,其可在命令前加上“sudo”,此時sudo將會詢問該用戶自己的密碼(以確認終端機前的是該用戶本人),回答后系統即會將該命令的進程以超級用戶的權限運行。之后的一段時間內(默認為5分鍾,可在/etc/sudoers自定義),使用sudo不需要再次輸入密碼。
4.語法:
sudo [ -Vhl LvkKsHPSb ] │ [ -p prompt ] [ -c class│- ] [ -a auth_type ] [-u username│#uid ] command
5.參數:
|
-V
|
顯示版本編號
|
|
-h
|
會顯示版本編號及指令的使用方式說明
|
|
-l
|
顯示出自己(執行 sudo 的使用者)的權限
|
|
-v
|
因為 sudo 在第一次執行時或是在 N 分鍾內沒有執行(N 預設為五)會問密碼,這個參數是重新做一次確認,如果超過 N 分鍾,也會問密碼
|
|
-k
|
將會強迫使用者在下一次執行 sudo 時問密碼(不論有沒有超過 N 分鍾)
|
|
-b
|
將要執行的指令放在背景執行
|
|
-p
|
prompt 可以更改問密碼的提示語,其中 %u 會代換為使用者的帳號名稱, %h 會顯示主機名稱
|
|
-u
|
username/#uid 不加此參數,代表要以 root 的身份執行指令,而加了此參數,可以以 username 的身份執行指令(#uid 為該 username 的使用者號碼)
|
|
-s
|
執行環境變數中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
|
|
-H
|
將環境變數中的 HOME (家目錄)指定為要變更身份的使用者家目錄(如不加 -u 參數就是系統管理者 root )
|
|
command
|
要以系統管理者身份(或以 -u 更改為其他人)執行的指令
|
6. sudo -i 切換用戶身份到root
