sudo 命令其實是Linux中的一種權限管理機制,管理員可以授權於一些普通用戶去執行一些 root 執行的操作,而不需要知道 root 的密碼。
嚴謹些說,sudo 允許一個已授權用戶以超級用戶或者其它用戶的角色運行一個命令。當然,能做什麼不能做什麼都是通過安全策略來指定的。sudo 支持插件架構的安全策略,並能把輸入輸出寫入日誌。第三方可以開發併發布自己的安全策略和輸入輸出日誌插件,並讓它們無縫的和 sudo 一起工作。默認的安全策略記錄在 /etc/sudoers 文件中。而安全策略可能需要用戶通過密碼來驗證他們自己。也就是在用戶執行 sudo 命令時要求用戶輸入自己賬號的密碼。如果驗證失敗,sudo 命令將會退出。
我們可以通過visudo來修改/etc/sudoers配置文件,visudo等價於vi /etc/sudoers。
文件的語法相當於 who where whom command 表示哪個用戶可以在哪個主機以誰的身份來執行哪些命令。
如:
root:表示root用戶
ALL:表示在任何主機上都可以,也可以表示192.168.0.0/24
(ALL):表示以任何的身份
ALL:表示可以執行任何命令。
整條語句的意思是:root用戶可以在任何機器上以任何身份執行任何命令
上面這條表示在wheel這個組中的成員所擁有的權限,這裏表示這個組中的成員能在任何機器上以任何身份來執行任何命令。
和前面的意思是一樣的,不過在執行命令的時候不會提示輸入密碼。默認情況下是需要輸入角色的密碼。
eg
給kunCool富裕任何角色來執行任何命令
切換到kunCool用戶
創建lisi用戶
給kunCool身份來執行指定命令權限
屏蔽輸入密碼提示:在命令處添加 NOPASSWD: ALL
表示kunCool用戶可以不用輸入密碼執行任何命令