Linux基礎教程之sudo使用指南
一、前言
sudo是什么?
sudo是系統管理指令;由于root用戶權限過大,在實際生產過程中很少使用root用戶直接登錄系統,而是使用普通用戶登錄系統;但是如果普通用戶要對系統進行日常維護操作時需要su到root用戶,為了提高安全性,可以使用sudo授權某一用戶在某一主機以某一用戶身份運行某些命令;從而減少root用戶密碼知曉人,提高系統安全性。
sudo的優勢:
①授權指定用戶在指定的主機上運行指定的管理命令;
②詳細記錄用戶基于sudo執行的命令相關的日志信息;
③”檢票系統”:時效性認證,用戶第一次執行sudo命令時會要求輸入密碼來驗證用戶身份,成功后用戶會獲得一個有固定存活時長的”令牌”(令牌默認存活時長為5分鐘)
二、sudo相關參數
sudo的授權文件:/etc/sudoers,只有管理員能夠編輯
1、實現sudo授權的方法
①使用vim打開編輯:
可以實現文本著色,但是不能檢測語法錯誤,不建議使用
②visudo:專用的sudoers文本編輯工具
配置完成后能夠檢測提示語法錯誤,建議使用此編輯工具進行/etc/sudoers進行編輯
幫助文檔:man visudo;man visudoers
2、sudo授權格式:授權某用戶在某主機上以某用戶的身份運行指定的管理命令
WHO ? ? HOST=(WHOM) ? ? COMMAND
別名定義:別名必須使用全大寫字符
WHO別名定義:
User_Alias ? NAME = item1,item2,item3,….
item:可以是用戶名,%組名,#UID,$#GID,User_Alias
HOST別名定義:
Host_Alias ?NAME = item1,item2,item3,….
item:可以是hostname,ip,network,Host_Alias
WHOM別名定義:
Runas_Alias ?NAME = item1,item2,item3,….
item:可以是用戶名,%組名,#UID,$#GID,User_Alias
COMMANDb別名定義:
Cmnd_Alias ?NAME = item1,item2,item3,…..
item:可以是命令,目錄(目錄下的所有命令),”sudoedit”,Cmnd_Alias
3、常用的標簽
PASSWD: 執行操作時,需要輸入密碼,來驗證用戶身份
NOPASSWD: 執行操作時,無需輸入密碼,不能確定用戶身份
4、sudo常用的命令參數
-l: 查看當前用戶可執行的sudo命令
-k:清除”令牌”
-b COMMAND:在后臺運行指定的命令COMMAND
-e /path/to/somefile: 修改指定的文件
-u USERNAME COMMAND: 以指定用戶的身份運行指定的命令COMMAND
三、配置舉例
1、授權cnetos用戶具有添加用戶的權限
使用centos用戶登錄測試: ? ? ?
2、別名定義以及調用
測試;centos用戶登錄測試指定的相關命令:?
?
3、防止授權用戶修改密碼修改root用戶的密碼?