標籤:linux sudo su
#su [OPTION] USERNAME 切換使用者
[OPTION]
- 變更當前的工作環境PWD
空 預設切換為root使用者
預設情況下使用su只是將PAHT和使用者切換為USERNAME的,並不變更PWD。使用-則和用USERNAME登陸在實質上是一樣的。
#sudo [OPTION] COMMAND
某使用者在不切換使用者的情況下以另一個使用者的許可權通過某個主機執行某個命令。
[OPTION]
-l 列出目前使用者可以使用的所有sudo類命令。
-k 清除認證,下次使用需輸入密碼。預設第一次輸入密碼後,5分鐘之內不再提示輸入密碼。
/etc/sudoers
sudo的設定檔,許可權為440。
除去額外配置條目,每一行定義個sudo條目,結構如下:
WHOWHICHHOST=[FLAG:](RUNAS) COMMAND
別名:
類似於組,別名只能使用大寫字母。先定義後使用。
使用!表示取反。
1.使用者別名 User_Alias
User_Alias NAME=USERNAME|%GROUP|OTHERUSERLIST
USERNAME 當前系統上的使用者。
%GROUP 使用者組,用%引導。
OTHERUSERLSIT 其他的別名列表。
2.主機別名 Host_Alias
Host_Alias HOST=HOST|IPADD|IP/NETMASK|+GROUP|OTHERHOSTLIST
HOST 主機名稱
IPADD IP地址
IP/NETMASK IP地址/子網路遮罩
+GROUP 主機群組,用+引導。
OTHERHOSTLIST 其他的別名列表
3.以哪個使用者運行 Runas_Alias
Runas_Alias RUNAS=USERNAME|#UID|%GROUP|+NETGROUP|OHTERRUNASLIST
USERNAME 使用者名稱
#UID UID,用#引導。
%GROUP 組名,用%引導。
OTHERRUNASLIST 其他的別名列表
4.命令 Cmnd_Alias
Cmnd_Alias CMND=COMMAND|COMMDIR|OTHERCMNDLIST
COMMAND 命令,使用絕對路徑。
COMMDIR 目錄,包含此目錄內的所有命令
OTHERCMNDLIST 其他的別名列表
FLAG(標籤):
NOPASSWD 使用者無需輸入密碼
PASSWD 要求輸入密碼
相關的動作記錄可以在/var/log/secure中查看。此記錄檔的許可權為600,只允許root查看。
例如:
1.hadoop使用者使用root執行useradd
#vimsudo
hadoop ALL=(root) /usr/sbin/useradd,/usr/sbin/usermod
hadoop$ sudo /usr/sbin/useradd tom
[sudo] passowrd for hadoop:
hadoop$
2.清除hadoop使用者的認證,並在設定檔中變更為useradd不要求輸入密碼,usermod要求輸入密碼。
#sudo -k
#vimsudo
hadoop ALL=NOPASSWD:(root) /usr/sbin/useradd,PASSWD: /usr/sbin/usermod
3.建立別名組,並禁止修改root密碼:
#visudo
User_Alias USERADMIN=hadoop,%hadoop,%useradmin
Cmnd_Alias USERADMINCMD=/usr/sbin/useradd,/usr/sbin/usermod,/usr/sbin/userdel,/usr/bin/passwd[A-Za-z]*,!/usr/bin/passwd root
這裡的[A-Za-z]*類似於檔案名稱通配,不是Regex。
USERADMIN ALL=NOPASSWD:USERADMINCMD
#visudo [OPTION] 編輯sudo設定檔的專用命令,可以檢查設定檔錯誤。
[OPTION]
-f FILE 指定其他的sudoers檔案
#man sudoers 查看有關/etc/sudoers的具體定義內容。
本文出自 “小私的blog” 部落格,請務必保留此出處http://ggvylf.blog.51cto.com/784661/1618399
linux su sudo命令詳解