本篇文章主要内容来自(老男孩教育———李导课堂讲解),主要介绍sudo配置和用法,为了给某个用户控制权限比如执行某个命令或者关机操作等,服务器管理员通常会给这个用户配置sudo,接下来就来详细介绍具体的配置方法。

第一篇博客文章,请大家多多给点修改意见,谢谢!!!

环境:

[root@m01-61 ~]# cat /etc/redhat-release

CentOS release 6.8 (Final)

[root@m01-61 ~]# uname -r

2.6.32-642.3.1.el6.x86_64

结构说明

可以通过编辑文件/etc/sudoers来配置,通常使用visudo命令来进行修改,因为如果你修改的格式不符合它会进行提示。接下来就通过一个格式来了解它

  = [ []] 
chenmh localhost = (root)    NOPASSWD: /bin/mkdir test

:指的是具体的用户或者用户别名,如果使用%user指的是用户组。

:指的是具体的host(可以是机器名也可以是ip)或者是host别名,ALL代表所有的host。

:可选,指定可以用调用哪个用户的来执行,ALL代表调用root用户来执行。

   这里要说明一下root用户的权限代表什么意思,比如一个目录的所有者是root,那么必须具备root用户的权限才能执行相关操作,比如上面的chenmh用户如果它配置的是其它用户比如它自己,那么它在root所有者的目录下面是没权限执行操作的。同样如果这里配置的是哪个用户那么比如mkdir创建的文件夹就的所有者就是哪个用户。默认不指定代表使用ALL

:可选,指定参数,通常使用NOPASSWD(代表该用户在执行sudo的时候不需要再输入自己的密码)。

:指定的具体命令或者是命令别名或者是ALL,ALL代表所有权限。

说明: [ []]这两个选项是可以选的可以不指定,如果不指定默认是调用root用户执行,但是使用sudo必须输入用户自己的密码

配置文件

接下来详细来看看它的配置文件,它的配置文件以及很详细的告诉了我们该怎样使用,在前面一部分是示例怎样将一组权限创建组别名,注意别名需要大写,

## Sudoers allows particular users to run various commands =## (ie,  files, LDAP, NIS, etc)   file - just use %== /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-= /bin/rpm, /usr/bin/up2date, /usr/bin/= /sbin/service, /sbin/= /usr/bin/= /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe, /bin/mount, /bin/= /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/= /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/= /sbin/= /bin/mkdir, /bin/, because it will show the password ! already  when the the env_reset option  option  only effective  configurations  disabled or HOME  present =  += += += += += = /sbin:/bin:/usr/sbin:/usr/==%sys ALL =%wheel        ALL=%wheel        ALL=%users  ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/%users  localhost=/sbin/shutdown -- files  /etc//etc/sudoers.d

 

案例

1.用户别名组中的用户可以在FILESERVERS这组host里面调用root用户执行OTHERS命令组的权限,多个命令组用逗号分隔

ADMINS  FILESERVERS=

2.用户chenmh这个用户可以在本机以调用root用户来执行所有的命令

chenmh localhost=

3.用户chenmh可以调用root用户创建目录test,也只能创建test目录

chenmh ALL=(ALL)    NOPASSWD: /bin/mkdir test

4.dev组的用户可以执行关机shutdown命令

%dev ALL=(ALL)    NOPASSWD:/sbin/shutdown

快捷操作 

 1.查看当前用户具备的sudo权限

sudo -l
User chenmh may run the following commands on this host:
    (root) NOPASSWD: /bin/mkdir, /bin/rm


总结

配置sudo记得使用visudo命令,如果配置错误了保存的时候它会有提示。