Linux 用戶管理之sudo 用法



  sudo 可讓你以其餘用戶的身份執行命令,然而並不是全部用戶都能執行 sudo  僅有 /etc/sudoers 內的用戶才能使用 sudo  。 vim


而 sudo 的配置文件 /etc/sudoers 僅有 root用戶 和 root用戶組能查看該文件。網絡


能夠直接用vim編輯來修改配置,但不建議使用,由於vim不會檢查語法錯誤, 而/etc/sudoers 是有語法的,若是設置錯誤可能會形成系統級別的問題,推薦用 visudo 命令來修改。ide




sudo 的選項spa

 -l          列出當前用戶可使用的全部的 sudo 命令3d

 -k          讓認證信息失效日誌



/var/log/secure  記錄全部 sudo 相關操做的全部日誌blog



如何使用sudo:get


用普通用戶 tom 執行查詢 /etc/shadow 因爲 tom 不是 root 沒權限查詢it

wKiom1ZdxGahjhD3AABC3DcJpH4458.png



嘗試經過 sudo 命令來查詢 因爲 tom 不是 /etc/sudoers 內的用戶因此沒法經過 sudo 來執行該命令io

wKiom1ZdxGahgG3uAAB3LaTr0dI582.png



切回 root 用戶 用 visudo 命令 去修改 /etc/sudoers 

找到  root    ALL=(ALL)     ALL    這行 並在這行下新添加或修改已有的配置

wKioL1ZdxM2jL6ivAAAfeNXL2wg730.png


4個參數的意義

第一個  表明用戶           who 

第二個  登錄者的來源主機名(這個帳號是由哪一個主機鏈接到本主機)          which_host

第三個  可切換的身份            runas

第四個  可執行的命令 (命令用絕對路徑來寫)           command

ALL 表明任何 主機 身份 命令

語法格式: who     which_host=(runas)      command


注意:工做上不該該這麼設置 普通用戶擁有徹底的 root 權限簡直是恐怖




sudo 支持別名機制  (注意:別名的名字所有且只能使用大寫字母)

如:


用戶別名:能夠包含用戶的用戶名,組名還能夠包含其餘已經定義好的用戶別名(!能夠取反 !tom 表示除 tom 用戶之外)。


wKioL1ZhCOig1NutAAB***kI5Xw339.png




主機別名:能夠包含主機名,IP地址,網絡地址或者其餘定義好的主機別名。


wKiom1ZhCBehetd9AABam3FIIUE293.png




ruans 別名:用戶名,組名,其它定義好的ruans別名


wKiom1ZhC1CCz7q4AAAXJJclAyQ836.png






命令別名:命令要用絕對路徑,此目錄下的全部命令,或者其餘定義好的命令別名


wKioL1ZhCIODsUCDAADT75hlB70852.png






配置好 visudo 後再經過 sudo 命令執行查詢 其中輸入密碼是輸入當前用戶的密碼(也就是 tom 用戶的密碼)

wKiom1ZdxGjTYsx8AACRjpvXpvg351.png



也能夠在命令前 添加 NOPASSWD: 修改配置  就能夠不用輸入密碼了

wKioL1Zd11jTrYuyAAAj1eAoJtM970.png

wKiom1Zd1vOhbMY8AABlxHXInRQ425.png



sudo 的時間間隔

若是使用同一帳號在短期內重複操做 sudo 來運行命令,在第二次執行 sudo 時不須要輸入本身的密碼,兩次使用 sudo 的間隔時間在5分鐘內才能夠,如超過則需從新輸入密碼。  

相關文章
相關標籤/搜索