使用别名提权(使用大写字母表示)

用户定义别名 User_Alias    别名=用户名列表   

命令定义别名 Cmed_Alias  别名=命令列表

主机定义别名 Host_Alias  别名=主机名列表


1、用户tom通过sudo方式控制httpd、mysqld服务的运行

        [root@svr7 ~]#vim /etc/sudoers

  1. Cmnd_Alias LAMP_CTRL=/sbin/service httpd *, /sbin/service mysqld, /etc/init.d/ht

  2. tpd, /etc/init.d/mysqld

  3. tom localhost,svr7=LAMP_C

2、切换为tradm用户,并验证sudo执行权限 

  1. [root@svr7 ~]# su - tom

  2. [tom@svr7 ~]$ sudo -l

  3. [sudo] password for tom:                                    //验证用户tradm的口令

  4. 用户 tom 可以在该主机上运行以下命令

  5. (root) /sbin/service httpd *, /sbin/service mysqld *, /etc/init.d/httpd,

  6. /etc/init.d/mysqld

  7. [tom@svr7 ~]$ service mysqld start                      //不用sudo时启动服务失败

  8. [tom@svr7 ~]$ sudo service mysqld start              //通过sudo启动服务成功

  

             

1、允许用户kenji通过sudo方式添加/删除/修改除root以外的用户账号

       [root@svr7 ~]#vim /etc/sudoers

  1. Cmnd_Alias UADM_CTRL=/usr/bin/passwd,!/usr/bin/passwd root,/usr/sbin/user*,

  2. !/usr/sbin/user* * root

  3. kenji localhost,svr7=UADM_CTRL

2、切换为kenji用户,验证sudo权限

  1. [root@svr7 ~]# su – kenji

  2. [kenji@svr7 ~]$ sudo -l

  3. 用户 ugadm 可以在该主机上运行以下命令:

  4. (root) /usr/bin/passwd, !/usr/bin/passwd root, /usr/sbin/user*,

  5. !/usr/sbin/user* * root

  6. [kenji@svr7 ~]$ sudo useradd newuser01                 //可以添加用户

  7. [kenji@svr7 ~]$ sudo passwd newuser01                  //可以修改普通用户的口令

  8. 更改用户 newuser01 的密码 。

  9. 新的 密码:

  10. 重新输入新的 密码:

  11. passwd: 所有的身份验证令牌已经成功更新。

3、不能修改root用户的属性

  1. [kenji@svr7 ~]$ sudo usermod -L root

  2. 对不起,用户 ugadm 无权以 root 的身份在 svr7.xin.com 上


注意:类Shell的程序不要允许用户sudo执行,否则等同于开放所有root权限。

比方说,如果将/bin/bash复制为/sbin/serv1ce(名称可以有一定迷惑性),然后夹杂在其他正常命令里一起授权给用户tradm,则用户           tradm执行sudo serv1ce后就具有了root的身份。

  1. [kenji@svr7 ~]$ sudo serv1ce                            //执行伪装的Shell程序

  2. [sudo] password for  kenji:                              //验证用户口令

  3. [root@svr7 zengye]# whoami                           //查看当前身份

  4. root