sudo主要包括以下三个部分:
》用户(User)授权指定用户,使用 (%组名)的形式可以授权一个组的所有用户。
》主机 (Machine) 授权用户可以在那些主机使用。
》命令 (Commands) 授权用户通过sudo调用命令,填写命令的完整路径。

(1)授权zhangsan可以以root权限执行ifconfig命令。
visudo
shangsan        localhost=/sbin/ifconfig

验证:
$ /sbin/ifconfig eth0      
eth0      Link encap:Ethernet  HWaddr 00:0C:29:D9:61:EE 
          inet addr:192.168.1.120  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fed9:61ee/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3750 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1542 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:361249 (352.7 KiB)  TX bytes:193309 (188.7 KiB)
          Interrupt:67 Base address:0x2000

(2)在/etc/sudoers文件配置中的用户,主机,命令三个部分均可已定义别名进行代替。格式如下:
User_Alias    OPERATORS=shangsan,lisi
Host_Alias    MAILSERVERS=smtp,pop
Cmnd_Alias    SOFTWARE=/bin/rpm,/usr/bin/yum

其中,第一列 User_Ailas,Host_Alias,Cmnd_Alias 为关键子


通过别名定义一组命令(加载服务、关闭服务),并授权用户tom可以使用该组命令
visudo
Cmnd_Alias      PENGLIANG=/sbin/service,/bin/kill,/bin/killall
tom     localhost=PENGLIANG




(3)授权用户不需要密码验证即可使用sudo执行命令,可以在命令前面添加NOPASSWORD 配置,结合(ALL)
授权benet组的用户不需要验证密码即可执行所有命令。
创建用户
useradd benet1
useradd benet2
useradd benet3
useradd benet4
创建组
groupadd benet
把用户加入组
gpasswd -M benet1,benet2,benet3,benet4 benet
编辑visudo
visudo     添加如下:
%benet  ALL=(ALL)       NOPASSWD: ALL

验证:
[benet1@localhost ~]$ sudo /sbin/service network restart
Shutting down interface eth0:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:                                [  OK  ]
[benet1@localhost ~]$ sudo /usr/sbin/useradd gaopeng


(4)sudo可以结合系统日志
visudo    添加如下:
Defaults        logfile = "/var/log/sudo"


vim /etc/syslog.conf     添加如下:
local2.debug                /var/log/sudo

日志
service syslog restart

tail -f /var/log/sudo
Apr  5 19:30:26 : benet1 : TTY=pts/1 ; PWD=/home/benet1 ; USER=root ;
    COMMAND=/usr/sbin/useradd aa
Apr  5 19:30:47 : benet1 : TTY=pts/1 ; PWD=/home/benet1 ; USER=root ; COMMAND=/sbin/ifconfig
Apr  5 19:31:00 : benet1 : TTY=pts/1 ; PWD=/home/benet1 ; USER=root ;
    COMMAND=/sbin/service restart
Apr  5 19:31:06 : benet1 : TTY=pts/1 ; PWD=/home/benet1 ; USER=root ;
    COMMAND=/sbin/service network restart