簡單的說,sudo 是一種許可權管理機制,管理員可以授權於一些普通使用者去執行一些 root 執行的操作,而不需要知道 root 的密碼。
嚴謹些說,sudo 允許乙個已授權使用者以超級使用者或者其它使用者的角色執行乙個命令。當然,能做什麼不能做什麼都是通過安全策略來指定的。sudo 支援外掛程式架構的安全策略,並能把輸入輸出寫入日誌。第三方可以開發並發布自己的安全策略和輸入輸出日誌外掛程式,並讓它們無縫的和 sudo 一起工作。預設的安全策略記錄在 /etc/sudoers 檔案中。而安全策略可能需要使用者通過密碼來驗證他們自己。也就是在使用者執行 sudo 命令時要求使用者輸入自己賬號的密碼。如果驗證失敗,sudo 命令將會退出。
1、sudo命令語法
sudo [-bhhpv][-s ][-u 《使用者》][指令]
或sudo [-klv]
引數-b 在後台執行指令。
-h 顯示幫助。
-h 將home環境變數設為新身份的home環境變數。
-k 結束密碼的有效期限,也就是下次再執行sudo時便需要輸入密碼。
-l 列出目前使用者可執行與無法執行的指令。
-p 改變詢問密碼的提示符號。
-s 執行指定的shell。
-u 《使用者》 以指定的使用者作為新的身份。若不加上此引數,則預設以root作為新的身份。
-v 延長密碼有效期限5分鐘。
-v 顯示版本資訊。
-s 從標準輸入流替代終端來獲取密碼
2、sudo程式相關檔案
/etc/sudoers
/etc/init.d/sudo
/etc/pam.d/sudo
/var/lib/sudo
/usr/share/doc/sudo
/usr/share/lintian/overrides/sudo
/usr/share/bash-completion/completions/sudo
/usr/bin/sudo
/usr/lib/sudo
3、基本配置
系統預設建立了乙個名為 sudo 的組。只要把使用者加入這個組,使用者就具有了 sudo 的許可權。
至於如何把使用者加入 sudo 組,您可以直接編輯 /etc/group 檔案,當然您得使用乙個有 sudo 許可權的使用者來幹這件事:
先建立使用者並設定密碼後,然後在sudo組中加入該使用者,多個使用者用逗號隔開。
新增內容如下:
我們把使用者 testuser 新增到了 sudo 組中,所以當使用者 testuser 登入後就可以通過 sudo 命令以 root 許可權執行命令了!
但是,用testuser執行root許可權的命令時會報錯:
解決辦法:
1)、切換到root使用者下
普通使用者切換到root使用者下:sudo -i
root使用者切換到普通使用者下:su testuser
2)、新增sudo檔案的寫許可權,命令是:
chmod u+w /etc/sudoers
3)、編輯sudoers檔案
vi /etc/sudoers
找到這行 root all=(all) all,在他下面新增*** all=(all) all (這裡的***是你的使用者名稱)
ps:這裡說下你可以sudoers新增下面四行中任意一條
youuser all=(all) all
%youuser all=(all) all
youuser all=(all) nopasswd: all
%youuser all=(all) nopasswd: all
第一行:允許使用者youuser執行sudo命令(需要輸入密碼).
第二行:允許使用者組youuser裡面的使用者執行sudo命令(需要輸入密碼).
第三行:允許使用者youuser執行sudo命令,並且在執行的時候不輸入密碼.
第四行:允許使用者組youuser裡面的使用者執行sudo命令,並且在執行的時候不輸入密碼.
4)、撤銷sudoers檔案寫許可權,命令:
chmod u-w /etc/sudoers
這樣普通使用者就可以使用sudo了。
4、sudo命令的日誌
在 ubuntu 中,sudo 的日誌預設被記錄在 /var/log/auth.log 檔案中。當我們執行 sudo 命令時,相關日誌都是會被記錄下來的。比如下圖中顯示的就是一次執行 sudo 命令的日誌。
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命令詳解
1.簡介 sudo是linux系統管理指令,是允許系統管理員讓普通使用者執行一些或者全部的root命令的乙個工具,如halt,reboot,su等等。這樣不僅減少了root使用者的登入 和管理時間,同樣也提高了安全性。sudo不是對shell的乙個代替,它是面向每個命令的。2.特性 1 sudo能夠...
su和sudo命令詳解
我們知道,在linux下對很多檔案進行修改都需要有root 管理員 許可權,比如對 ect profile等檔案的修改。很多情況下,我們在進行開發的時候都是使用普通使用者進行登入的,尤其在進行一些環境變數的配置工作時,常常需要對一些檔案進行修改。那麼我們如何獲取管理員許可權呢?一般來說,有兩種方法。...