sudo命令詳解

2021-10-19 14:55:43 字數 1456 閱讀 2212

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將要執行的指令放在背景執行

-pprompt 可以更改問密碼的提示語,其中 %u 會代換為使用者的帳號名稱, %h 會顯示主機名稱

-uusername/#uid 不加此引數,代表要以 root 的身份執行指令,而加了此引數,可以以 username 的身份執行指令(#uid 為該 username 的使用者號碼)

-s執行環境變數中的 shell 所指定的 shell ,或是 /etc/passwd 裡所指定的 shell

-h將環境變數中的 home (家目錄)指定為要變更身份的使用者家目錄(如不加 -u 引數就是系統管理者 root )

command

要以系統管理者身份(或以 -u 更改為其他人)執行的指令

6. sudo -i  切換使用者身份到root

sudo命令詳解

sudo 以其他使用者身份執行一條命令 usage sudo h k k v usage sudo v akns g group h host p prompt u user usage sudo l akns g group h host p prompt u user u user comman...

sudo命令詳解

簡單的說,sudo 是一種許可權管理機制,管理員可以授權於一些普通使用者去執行一些 root 執行的操作,而不需要知道 root 的密碼。嚴謹些說,sudo 允許乙個已授權使用者以超級使用者或者其它使用者的角色執行乙個命令。當然,能做什麼不能做什麼都是通過安全策略來指定的。sudo 支援外掛程式架構...

su和sudo命令詳解

我們知道,在linux下對很多檔案進行修改都需要有root 管理員 許可權,比如對 ect profile等檔案的修改。很多情況下,我們在進行開發的時候都是使用普通使用者進行登入的,尤其在進行一些環境變數的配置工作時,常常需要對一些檔案進行修改。那麼我們如何獲取管理員許可權呢?一般來說,有兩種方法。...