Sudo权限管理

简介:

1. sudo能够限制指定用户在指定主机上运行某些命令。
2. sudo可以提供日志,忠实地记录每个用户使用sudo做了些什么,并且能将日志传到中心主机或者日志服务器。
3. sudo为系统管理员提供配置文件,允许系统管理员集中地管理用户的使用权限和使用的主机。它默认的存放位置是/etc/sudoers。

 4.sudo使用时间戳文件来完成类似“检票”的系统。当用户执行sudo并且输入密码后,用户获得了一张默认存活期为5分钟的“入场券”(默认值可以在编译的时候改变)。超时以后,用户必须重新输入密码。

 

 

命令格式:

sudo -K -L -V -h -k -l -vsudo [-HPSb] [-a auth_type] [-c class-] [-p prompt] [-u username#uid] {-e file [...] -i -s command}

参数:

 -l : 列出当前用户可以执行的命令。
 -u username#uid :以指定用户的身份执行命令。

 -k:清除“入场卷”上的时间,下次再使用sudo时要再输入密码。                     

-K :与-k类似,但是它还要撕毁“入场卷”,也就是删除时间戳文件。

-b command :在后台执行指定的命令。

-e file :不是执行命令,而是修改文件,相当于命令sudoedit。

 

 

       配置文件:visudo -f/etc/sudoers

       打开关闭配置文件: e是重新编辑,x是不保存退出,Q是退出并保存。

             

 

       权限设置:

用户名 ALL=(ALL) ALL

              用户名 主机=(继承的身份1,身份2,…)  命令1,命令2…..

              不需要密码验证:用户名 主机=(身份)NOPASSWD:  命令….

admin  ALL=(root)NOPASSWD:     ALL

              禁止使用某条命令:用户名 主机=(身份) !命令1,!命令2…

              组权限:%组名主机=(继承的身份1,身份2,…)命令1,命令2…

              如果身份省略,默认root用户。

 

       别名设置:

Host_Alias:定义主机别名;
User_Alias:用户别名,别名成员可以是用户,用户组(前面要加%号)
Runas_Alias:用来定义runas别名,这个别名指定的是“目的用户”,即sudo 允许切换至的用户;
Cmnd_Alias:定义命令别名;

 

              实例:

Host_Alias AS01=localhost,st05,st04,10,0,0,4,192.168.1.0/24 

#注:定义主机别名HT01,通过=号列出成员
Host_Alias AS02=st09,st10 

#注:主机别名HT02,有两个成员;
Host_Alias AS01=localhost,st05,st04,10,0,0,4, 192.168.1.0/24:AS02=st09,st10 

#注:上面的两条对主机的定义,可以通过一条来实现,别名之间用:号分割;


假如我们就一台主机localhost,能通过hostname 来查看,我们在这里就不定义主机别名了,用ALL来匹配所有可能出现的主机名;并且有 user_1、user_2、user_3 用户;

 
User_Alias SYSADER=user_1,user_2,%user_1

#定义用户别名SYSADER 下有成员 user_1user_2user_1用户组下的成员,用户组前面必须加%号;
User_Alias DISKADER=user_3

#定义用户别名 DISKADER ,成员有user_3
Runas_Alias OP=root

#定义Runas用户,也就是目标用户的别名为OP,下有成员root
Cmnd_Alias SYDCMD=/bin/chown,/bin/chmod,/usr/sbin/adduser,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root

#定义SYSCMD命令别名,成员之间用,号分隔,最后的!/usr/bin/passwd root 表示不能通过passwd 来更改root密码
Cmnd_Alias DSKCMD=/sbin/parted,/sbin/fdisk 

#定义命令别名DSKCMD,下有成员partedfdisk 
SYSADER ALL= SYDCMD,DSKCMD

#表示授权SYSADER下的所有成员,在所有可能存在的主机名的主机下运行或禁止 SYDCMDDSKCMD下定义的命令。
DISKADER ALL=(OP) DSKCMD

表示授权 DISKADER  下的所有成员,能以 OP 的身份,来运行  DSKCMD  ,不需要密码;

你可能感兴趣的:(Ops)