sudo命令
1、sudo能夠授權指定用戶在指定主機上運行某些命令。如果未授權用戶嘗試使用sudo ,會提示聯系管理員
2、sudo可以提供日志,記錄每個用戶使用sudo 操作
3、sudo為系統管理員提供配置文件,允許系統管理員集中地管理用戶的使用權限和使用的主機
4、sudo 使用時間戳文件來完成類似“檢票”的 系統,默認存活期為5 分鐘的 “入場券”
5、通過visudo命令編輯配置文件,具有語法檢查功能
配置文件:/etc/sudoers, /etc/sudoers.d/
時間戳文件:/var/db/sudo
日志文件:/var/log/secure
配置文件支持使用通配符glob:
?: 任意單一字符
*:匹配任意長度字符
[wxc]:匹配其中一個字符
[!wxc]:除了這三個字符的其它字符
\x:轉義
[[alpha]]:字母
示例:/bin/ls [[alpha]]*
配置文件規則有兩類 ;
1、別名定義:不是必須的
2、授權規則:必須的
sudo –i –u wang 切換身份
sudo [-u user] COMMAND
-V:顯示版本信息等配置信息
-u user:默認為root
-l,ll:列出用戶在主機上可用的和被禁止的命令
-v:再延長密碼有效期限5分鐘, 更新時間戳
-k:清除時間戳,下次需要重新輸密碼
-K:與-k類似,還要刪除時間戳文件
-b:在后臺執行指令
-p:改變詢問密碼的提示符號
如 -p ”password on %h for user %p"
授權規則格式:
用戶 登入主機=(代表用戶) 命令
示例:
root ALL=(ALL) ALL
/etc/sudoers中 關于root權限的行,是一個后門,如果root用戶不是管理員了,但可以使用sudo命令來獲取所有用戶的權限
A用戶加入到wheel組中,B用戶運行以A身份運行命令<sudo>
則B用戶要運行擁有wheel組的權限,需要2次sudo
sudo -u A sudo cat /etc/shadow
格式說明:
user:運行命令者的身份
host:通過哪些主機
(runas):以哪個用戶的身份
command:運行那些命令
Users和runas:
username
#uid
%group_name
%#gid
user_alias|runas_alias
host:
ip 或hostname
network(/netmask)
host_alias
command:
command name
directory
sudoedit
授權用戶可以直接編輯/etc/sudoers文件
用法:sudo /etc/dudoers
Cmnd_Alias
別名有四種類型:User_Alias,Runas_Alias,Host_Alias,Cmnd_Alias
別名格式:[A-Z]([A-Z][0-9]_)*
別名定義:
Alias_Type NAME1 = item1, item2, item3 : NAME2 = item4, item5
示例1:
Student ALL=(ALL) ALL
%wheel ALL=(ALL) ALL
示例2:
student ALL=(root) /sbin/pidof,/sbin/ifconfig
%wheel ALL=(ALL) NOPASSWD: ALL
示例3:
User_Alias NETADMIN= netuser1,netuser2
Cmnd_Alias NETCMD = /usr/sbin/ip
NETADMIN ALL=(root) NETCMD
示例4:
User_Alias SYSADER=wang,mage,%admins
User_Alias DISKADER=tom
Host_Alias SERS=www.magedu.com,172.16.0.0/24
Runas_Alias OP=root
Cmnd_Alias SYDCMD=/bin/chown,/bin/chmod
Cmnd_Alias DSKCMD=/sbin/parted,/sbin/fdisk
SYSADER SERS= SYDCMD,DSKCMD
DISKADER ALL=(OP) DSKCMD
示例5:
User_Alias ADMINUSER = adminuser1,adminuser2
Cmnd_Alias ADMINCMD = /usr/sbin/useradd,
/usr/sbin/usermod, /usr/bin/passwd [a-zA-Z]*,
!/usr/bin/passwd root
ADMINUSER ALL=(root) NOPASSWD:ADMINCMD, ,
PASSWD:/usr/sbin/userdel
示例6:
Defaults:wang runas_default=tom
wang ALL=(tom,jerry) ALL
使用sudo命令時,不寫-u USER,默認是wang
示例7:
wang 192.168.175.136,192.168.175.138=(root) /usr/sbin/,!/usr/sbin/useradd
示例8:
wang ALL=(ALL) /bin/cat /var/log/message*
原創文章,作者:megedugao,如若轉載,請注明出處:http://www.www58058.com/49075