sudo进行权限委派
一、sudo 组成
1.包:sudo
2.配置文件:/etc/sudo.conf
3.授权规则配置文件:
/etc/sudoers
/etc/sudoers.d
4.安全编辑授权规则文件和语法检查工具
/usr/sbin/visud
5.授权编辑规则文件的工具:/usr/bin/sudoedit
6.执行授权命令:/usr/bin/sudo
7.时间戳文件:/var/db/sudo
8.日志文件:/var/log/secure
9.检查语法
[root@centos8 ~]# visudo -c
/etc/sudoers: parsed OK
二、sudo 授权规则配置
visudo
1.sudoers 授权规则格式:
用户 登入主机=(代表用户) 命令
user host=(runas) command
2.格式说明:
user: 运行命令者的身份
host: 通过哪些主机
(runas):以哪个用户的身份
command: 运行哪些命令
3.范例
例:用户
wang账号使用mount /dev/cdrom /mnt/时相当于root,注意这里的格式一定要与输入命令的格式一样
例:组
joshuaw相当于root
4.我们也可以在/etc/sudoers.d目录下创建配置文件将需要设置的权限写入这个文件中
例:
[root@centos8 ~]# cd /etc/sudoers.d/ [root@centos8 sudoers.d]# ls [root@centos8 sudoers.d]# vim test wang ALL= sudoedit [root@centos8 sudoers.d]# cat test wang ALL= sudoedit [root@centos8 sudoers.d]# ll total 4 -rw-r--r-- 1 root root 19 Mar 21 11:01 test [root@centos8 sudoers.d]# chmod 440 test [root@centos8 sudoers.d]# ll test -r--r----- 1 root root 19 Mar 21 11:01 test
5.sudo四种类型的别名
1)
- User_Alias
- Runas_Alias
- Host_Alias
- Cmnd_Alias
2)别名格式:
[A-Z]([A-Z][0-9]_)*
3)别名定义:
Alias_Type NAME1 = item1,item2,item3 : NAME2 = item4, item5
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
6.通配符授权
1)配置文件中支持使用通配符 glob
? 任意单一字符 * 匹配任意长度字符 [wxc] 匹配其中一个字符 [!wxc] 除了这三个字符的其它字符 \x 转义 [[alpha]] 字母
2)例:
but,
这就很不安全了,所以这种授权写法有问题,我们需要进一步改正
7.修改验证密码间隔为2分钟
[root@centos8 ~]#vim /etc/sudoers Defaults env_reset , timestamp_timeout=2 [root@centos8 ~]#sudo -V ...... Authentication timestamp timeout: 2.0 minutes......
8.将visudo设置为vim模式
1)centos:
[root@centos7 ~]# vim .bash_profile export EDITOR=vim [root@centos7 ~]# . .bash_profile
2)ubuntu
root@ubuntu1804:~# vim .profile export EDITOR=vim root@ubuntu1804:~# . .profile
9.查看授权的选项-l