su 切换身份:su -l username -c 'command'
sudo [-u user] COMMAND
-V 显示版本
-u user 指定user,默认root
-l,ll 列出用户在主机上可用和被禁止的命令
-v 再延长密码有效期限5分钟
-k 清除时间戳
-K 删除时间戳文件
-b 在后台执行命令
-p 改变询问密码的提示符号
sudo权限委派
配置文件:vim /etc/sudoers
=visudo
/etc/sudoers.d/ 自定义文件
时间戳文件:/var/db/sudo
日志文件:/var/log/secure
配置文件支持使用通配符golb:
?:任意一个字符
*:任意长度字符
[wxc]:匹配其中一个字符
[!wxc]:除了这三个字符的其他字符
\:转义
[[alpha]]:字母
配置文件规则有两类:
1、别名定义:不是必须的
2、授权规则:必须的
授权规则格式:
用户 登入主机=(代表用户) 命令
root ALL=(ALL) ALL ###root用户可以代替任何人在任何主机执行任何命令
用户\代表用户:username,#用户ID,%组名,%组ID,User_Alias\Runas_Alias
登入主机:ip,hostname,network,Host_Alias
命令:command name,directory,sudoedit,Cmnd_Alias
sudo别名和示例
别名有四种类型:User_Alias,Runas_Alias(代表用户),Host_Alias,Cmnd_Alias
别名格式:必须大写字母
别名定义:
Type_Alias NAME1 = item1,item2,item3 : NAME2 = item4,item5
示例:
%wheel ALL=(ALL) NOPASSED:ALL ###当wheel组的人执行sudo操作是无需输密码
User_Alias SYSADER = wang,mage,%admins
Host_Alias SERS = www.mage.com,192.168.10.0/24
Cmnd_Alias NETCMD1 = /usr/sbin/ip
SYSADER SERS=(root) NETCMD
Cmnd_Alias NETCMD2 = /usr/bin/passwd [[alpha]]*,!/usr/sbin/useradd ###可以修改用户密码,不能增加用户