前言
在Linux系統中,由于root的權限過大,一般情況都不使用它。只有在一些特殊情況下才采用登錄root執行管理任務,一般情況下臨時使用root權限多采用su和sudo命令。
su命令就是切換用戶的工具,怎么理解呢?比如我們以普通用戶tom登錄的,但要添加用戶任務,執行useradd ,tom用戶沒有這個權限,而這個權限恰恰由root所擁有。解決辦法無法有兩個,一是退出tom用戶,重新以root用戶登錄,但這種辦法并不是最好的;二是我們沒有必要退出tom用戶,可以用su來切換到root下進行添加用戶的工作,等任務完成后再退出root。
我們可以看到當然通過su切換是一種比較好的辦法;通過su可以在用戶之間切換,而超級權限用戶root向普通或虛擬用戶切換不需要密碼,而普通用戶切換到其它任何用戶都需要密碼驗證。
sudo
sudo是一種權限管理機制,依賴于/etc/sudoers,其定義了授權給哪個用戶可以以管理員的身份能夠執行什么樣的管理命令;
格式:sudo -u USERNAME COMMAND
默認情況下,系統只有root用戶可以執行sudo命令。需要root用戶通過使用visudo命令編輯sudo的配置文件/etc/sudoers,才可以授權其他普通用戶執行sudo命令。
sudo的運行有這樣一個流程:
(1)當用戶運行sudo時,系統于/etc/sudoers文件里查找該用戶是否有運行sudo的權限;
(2)若用戶具有可運行sudo的權限。那么讓用戶輸入用戶自己的password,注意這里輸入的是用戶自己的password。