15.1.4 利用别名配置授权实践案例
您可以在百度里搜索“Linux/Unix技术丛书·跟老男孩学Linux运维:核心基础篇(上)(第2版) 艾草文学(www.321553.xyz)”查找最新章节!
15.1.4 利用别名配置授权实践案例
由于主机别名在工作中极少使用,因此下面的例子中没有使用主机别名,不过其他的别名都有涉及。
1. 根据管理员管理功能,定义多个用户别名
1)定义系统管理用户别名为ADMINS,包含成员oldboy、ett及sa组的成员,命令如下:
User_Alias ADMINS = oldboy, ett, %sa #<==注意定义的规范。
2)定义用户别名NETADMINS来管理网络,包含成员leo和maya,命令如下:
User_Alias NETADMINS = leo, maya #<==网络管理员组NETADMINS。
3)定义用户别名USERADMINS来管理系统用户,包含成员zuma,命令如下:
User_Alias?USERADMINS = zuma #<==用户管理员组USERADMINS。
说明:
为了方便管理,应尽可能使用有意义的名称作为别名,定义时使用大写字符串。另外,所有定义的用户及用户组内包含的用户成员都必须是系统中存在的用户或存在的组。
4)检查并创建上述用户及用户组(用户和用户组都必须存在),命令如下:
[root@oldboy ~]# groupadd sa #<==添加sa组。
[root@oldboy ~]# useradd leo #<==依次添加5个用户。
[root@oldboy ~]# useradd maya
[root@oldboy ~]# useradd zuma
[root@oldboy ~]# useradd ett
[root@oldboy ~]# useradd oldboy
2. 根据命令的功能分类定义命令别名
1)定义命令别名USERCMD,包含管理系统用户的相关命令,命令如下:
Cmnd_Alias USERCMD = /usr/sbin/useradd, /usr/sbin/userdel,
/usr/bin/passwd [A-Za-z]*, /bin/chown, /bin/chmod #<==用户相关命令组USERCMD。
2)定义命令别名DISKCMD,包含管理系统磁盘的相关命令,命令如下:
Cmnd_Alias DISKCMD = /sbin/fdisk, /sbin/parted #<==磁盘管理相关命令组DISKCMD。
3)定义命令别名NETMAGCMD,包含管理系统网络的相关命令,命令如下:
Cmnd_Alias NETMAGCMD = /sbin/ifconfig, /etc/init.d/network #<==网络管理命令组。
说明:
1)所有命令别名下的命令都必须使用绝对路径。
2)命令别名超过一行时,可以通过“”号换行续写。
3)在定义时,可以使用通配符及正则表达式,例如,/usr/bin/passwd[A-Za-z]*。
3. 定义授权用户的别名
runas别名定义的示例代码如下:
Runas_Alias OP = root, oldboy
说明:
runas别名的定义并不多见,且不常用,因为多数都是需要root身份就够了,默认ALL也可以。
4. 根据别名配置对应的sudo授权规则
1)管理员别名(ADMINS)可以授权所有命令通过sudo进行管理,示例代码如下:
ADMINS ALL=(OP) DISKCMD,USERCMD,NETMAGCMD
2)用户管理员别名(USERADMINS)可以授权与用户命令别名对应的命令通过sudo进行管理,示例代码如下:
USERADMINS ALL=(OP) USERCMD
3)网络管理员别名(NETADMINS)可以授权与网络命令别名对应的命令通过sudo进行管理,示例代码如下:
NETADMINS ALL=(OP) NETMAGCMD
这样就完成了对不同的用户授权不同的命令集合,并通过sudo进行管理,让用户对应的权限管理得到了细化。怎么样?很简单吧? Linux/Unix技术丛书·跟老男孩学Linux运维:核心基础篇(上)(第2版)