《云计算》-安全策略-如何使用sudo分配管理权限

使用sudo分配管理权限
2.1 问题

本案例要求利用sudo机制分配管理操作权限,主要完成以下任务:

使用su命令临时切换账户身份,并执行命令
允许softadm管理系统服务的权限
允许用户useradm通过sudo方式添加/删除/修改除root以外的用户账号
允许wheel组成员以特权执行/usr/bin/下的命令
为sudo机制启用日志记录,以便跟踪sudo执行操作

     
     
  • 1
  • 2
  • 3
  • 4
  • 5

2.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:使用su命令临时切换账户身份,并以root执行命令

su(Substitute User)命令可以快速切换账户身份,普通用户切换账户身份时需要输入密码,root使用su命令切换任何身份都不需要密码,如法格式如下:

# su –  [账户名称]
# su -  [账户名称]  -c '命令'  

     
     
  • 1
  • 2

1)从普通用户切换为root账户身份(如果没有普通账户则需要先创建)

[jacob@svr5 ~]# whoami
jacob
[jacob@svr5 ~]# su –                    //切换账户,默认切换为root账户
密码:
[root@svr5 ~]# whoami                    //确认结果
root

     
     
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

2)以普通身份创建目录(如果没有普通账户则需要先创建),以root身份重启服务

[root@svr5 ~]# su - tom  -c "mkdir /home/tom/test"        //管理员切换普通用户
[root@svr5 ~]# ll -d  /home/tom/test
[tom@svr5 ~]# su - -c "systemctl restart sshd"            //以管理员重启服务
密码:
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
active: active (running) since 五 2018-01-19 08:59:40 CST; 1 months 4 days ago

     
     
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

步骤二:允许softadm管理系统服务的权限

1)修改/etc/sudoers配置

修改/etc/sudoers可以直接使用vim编辑该文件,或使用visudo命令修改该文件。

扫描二维码关注公众号,回复: 10077476 查看本文章

为softadm授予相关脚本的执行权限,允许通过systemctl工具来管理系统服务。

如果没有softadm账户可以先创建该账户。

[root@svr5 ~]# vim /etc/sudoers            //修改文件后,需要使用wq强制保存
.. ..
softadm    ALL=(ALL)   /usr/bin/systemctl         
//授权softadm以root身份执行systemctl命令

     
     
  • 1
  • 2
  • 3
  • 4

2)切换为softadm用户,并验证sudo执行权限

[root@svr5 ~]# su – softadm
[softadm@svr5 ~]$ sudo -l
… …
[sudo] password for softadm:                            //输入softadm的口令
.. ..
用户 softadm 可以在该主机上运行以下命令:
    (ALL) /usr/bin/systemctl
[softadm@svr5 ~]$ systemctl start httpd                    //不用sudo时启动服务失败
Authentication is required
.. ..
[softadm@svr5 ~]$ sudo systemctl restart httpd          //通过sudo启动服务成功

     
     
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

步骤三:允许用户useradm通过sudo方式添加/删除/修改除root以外的用户账号

1)修改/etc/sudoers配置

为useradm授予用户管理相关命令的执行权限,例外程序以!符号取反,放在后面。在执行相关程序时,可以利用通配符*。

[root@svr5 ~]# vim /etc/sudoers
.. ..
useradm ALL=(ALL)  /usr/bin/passwd,!/usr/bin/passwd root,/usr/sbin/user*,
 !/usr/sbin/user* * root

     
     
  • 1
  • 2
  • 3
  • 4

2)切换为useradm用户,验证sudo权限

可以通过sudo方式来添加/删除/修改普通用户:

[root@svr5 ~]# su – useradm
[useradm@svr5 ~]$ sudo -l
.. ..
用户useradm可以在该主机上运行以下命令:
    (root) /usr/bin/passwd, !/usr/bin/passwd root, /usr/sbin/user*,
!/usr/sbin/user* * root
[useradm@svr5 ~]$ sudo useradd newuser01                  //可以添加用户
[useradm@svr5 ~]$ sudo passwd newuser01                  //可以修改普通用户的口令
更改用户 newuser01 的密码 。
新的 密码:
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。

     
     
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

但是不能修改root用户的密码:

[useradm@svr5 ~]$ sudo passwd root
对不起,用户 useradm 无权以 root 的身份在 localhost 上
执行 /usr/bin/passwd root。

     
     
  • 1
  • 2
  • 3

步骤四:允许wheel组成员以特权执行/bin/下的所有命令

此案例用来展示sudo的便利性及设置不当带来的危险性,生产环境下慎用。

实现时参考下列操作(如果没有普通用户则先创建该账户):

[root@svr5 ~]# vim /etc/sudoers
.. ..
%wheel ALL=(ALL)  /bin/*
[root@svr5 ~]# usermod -a -G wheel zengye
[zengye@svr5 ~]$ sudo -l
.. ..
用户 zengye 可以在该主机上运行以下命令:
(root) /bin/*

     
     
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

步骤五:为sudo机制启用日志记录,以便跟踪sudo执行操作

1)修改/etc/sudoers配置,添加日志设置

[root@svr5 ~]# visudo
Defaults  logfile="/var/log/sudo"
.. ..

     
     
  • 1
  • 2
  • 3

2)以root(默认有所有权限)执行sudo操作

[root@svr5 ~]# sudo -l                                  //查看授权的sudo操作
[softadm@svr5 ~]# sudo systemctl status httpd              //查看授权的sudo操作

     
     
  • 1
  • 2

3)确认日志记录已生效

[root@svr5 ~]# tail /var/log/sudo 
.. ..
May 16 22:14:49 : root : TTY=pts/1 ; PWD=/root ; USER=root ; COMMAND=list
Feb 22 22:35:43 : softadm : TTY=pts/11 ; PWD=/home/softadm ; USER=root ;
    COMMAND=/bin/systemctl status httpd

     
     
  • 1
  • 2
  • 3
  • 4
  • 5
                                </div>
            <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-b6c3c6d139.css" rel="stylesheet">
                                            <div class="more-toolbox">
            <div class="left-toolbox">
                <ul class="toolbox-list">
                    
                    <li class="tool-item tool-active is-like "><a href="javascript:;"><svg class="icon" aria-hidden="true">
                        <use xlink:href="#csdnc-thumbsup"></use>
                    </svg><span class="name">点赞</span>
                    <span class="count"></span>
                    </a></li>
                    <li class="tool-item tool-active is-collection "><a href="javascript:;" data-report-click="{&quot;mod&quot;:&quot;popu_824&quot;}"><svg class="icon" aria-hidden="true">
                        <use xlink:href="#icon-csdnc-Collection-G"></use>
                    </svg><span class="name">收藏</span></a></li>
                    <li class="tool-item tool-active is-share"><a href="javascript:;" data-report-click="{&quot;mod&quot;:&quot;1582594662_002&quot;}"><svg class="icon" aria-hidden="true">
                        <use xlink:href="#icon-csdnc-fenxiang"></use>
                    </svg>分享</a></li>
                    <!--打赏开始-->
                                            <!--打赏结束-->
                                            <li class="tool-item tool-more">
                        <a>
                        <svg t="1575545411852" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5717" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M179.176 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5718"></path><path d="M509.684 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5719"></path><path d="M846.175 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5720"></path></svg>
                        </a>
                        <ul class="more-box">
                            <li class="item"><a class="article-report">文章举报</a></li>
                        </ul>
                    </li>
                                        </ul>
            </div>
                        </div>
        <div class="person-messagebox">
            <div class="left-message"><a href="https://blog.csdn.net/xie_qi_chao">
                <img src="https://profile.csdnimg.cn/B/F/6/3_xie_qi_chao" class="avatar_pic" username="xie_qi_chao">
                                        <img src="https://g.csdnimg.cn/static/user-reg-year/1x/2.png" class="user-years">
                                </a></div>
            <div class="middle-message">
                                    <div class="title"><span class="tit"><a href="https://blog.csdn.net/xie_qi_chao" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;}" target="_blank">解启超</a></span>
                                        </div>
                <div class="text"><span>发布了330 篇原创文章</span> · <span>获赞 52</span> · <span>访问量 3万+</span></div>
            </div>
                            <div class="right-message">
                                        <a href="https://im.csdn.net/im/main.html?userName=xie_qi_chao" target="_blank" class="btn btn-sm btn-red-hollow bt-button personal-letter">私信
                    </a>
                                                        <a class="btn btn-sm attented bt-button personal-watch" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;}">已关注</a>
                                </div>
                        </div>
                </div>
</article>
发布了179 篇原创文章 · 获赞 180 · 访问量 7063

使用sudo分配管理权限
2.1 问题

本案例要求利用sudo机制分配管理操作权限,主要完成以下任务:

使用su命令临时切换账户身份,并执行命令
允许softadm管理系统服务的权限
允许用户useradm通过sudo方式添加/删除/修改除root以外的用户账号
允许wheel组成员以特权执行/usr/bin/下的命令
为sudo机制启用日志记录,以便跟踪sudo执行操作

  
  
  • 1
  • 2
  • 3
  • 4
  • 5

2.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:使用su命令临时切换账户身份,并以root执行命令

su(Substitute User)命令可以快速切换账户身份,普通用户切换账户身份时需要输入密码,root使用su命令切换任何身份都不需要密码,如法格式如下:

# su –  [账户名称]
# su -  [账户名称]  -c '命令'  

  
  
  • 1
  • 2

1)从普通用户切换为root账户身份(如果没有普通账户则需要先创建)

[jacob@svr5 ~]# whoami
jacob
[jacob@svr5 ~]# su –                    //切换账户,默认切换为root账户
密码:
[root@svr5 ~]# whoami                    //确认结果
root

  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

2)以普通身份创建目录(如果没有普通账户则需要先创建),以root身份重启服务

[root@svr5 ~]# su - tom  -c "mkdir /home/tom/test"        //管理员切换普通用户
[root@svr5 ~]# ll -d  /home/tom/test
[tom@svr5 ~]# su - -c "systemctl restart sshd"            //以管理员重启服务
密码:
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
active: active (running) since 五 2018-01-19 08:59:40 CST; 1 months 4 days ago

  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

步骤二:允许softadm管理系统服务的权限

1)修改/etc/sudoers配置

修改/etc/sudoers可以直接使用vim编辑该文件,或使用visudo命令修改该文件。

为softadm授予相关脚本的执行权限,允许通过systemctl工具来管理系统服务。

如果没有softadm账户可以先创建该账户。

[root@svr5 ~]# vim /etc/sudoers            //修改文件后,需要使用wq强制保存
.. ..
softadm    ALL=(ALL)   /usr/bin/systemctl         
//授权softadm以root身份执行systemctl命令

  
  
  • 1
  • 2
  • 3
  • 4

2)切换为softadm用户,并验证sudo执行权限

[root@svr5 ~]# su – softadm
[softadm@svr5 ~]$ sudo -l
… …
[sudo] password for softadm:                            //输入softadm的口令
.. ..
用户 softadm 可以在该主机上运行以下命令:
    (ALL) /usr/bin/systemctl
[softadm@svr5 ~]$ systemctl start httpd                    //不用sudo时启动服务失败
Authentication is required
.. ..
[softadm@svr5 ~]$ sudo systemctl restart httpd          //通过sudo启动服务成功

  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

步骤三:允许用户useradm通过sudo方式添加/删除/修改除root以外的用户账号

1)修改/etc/sudoers配置

为useradm授予用户管理相关命令的执行权限,例外程序以!符号取反,放在后面。在执行相关程序时,可以利用通配符*。

[root@svr5 ~]# vim /etc/sudoers
.. ..
useradm ALL=(ALL)  /usr/bin/passwd,!/usr/bin/passwd root,/usr/sbin/user*,
 !/usr/sbin/user* * root

  
  
  • 1
  • 2
  • 3
  • 4

2)切换为useradm用户,验证sudo权限

可以通过sudo方式来添加/删除/修改普通用户:

[root@svr5 ~]# su – useradm
[useradm@svr5 ~]$ sudo -l
.. ..
用户useradm可以在该主机上运行以下命令:
    (root) /usr/bin/passwd, !/usr/bin/passwd root, /usr/sbin/user*,
!/usr/sbin/user* * root
[useradm@svr5 ~]$ sudo useradd newuser01                  //可以添加用户
[useradm@svr5 ~]$ sudo passwd newuser01                  //可以修改普通用户的口令
更改用户 newuser01 的密码 。
新的 密码:
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。

  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

但是不能修改root用户的密码:

[useradm@svr5 ~]$ sudo passwd root
对不起,用户 useradm 无权以 root 的身份在 localhost 上
执行 /usr/bin/passwd root。

  
  
  • 1
  • 2
  • 3

步骤四:允许wheel组成员以特权执行/bin/下的所有命令

此案例用来展示sudo的便利性及设置不当带来的危险性,生产环境下慎用。

实现时参考下列操作(如果没有普通用户则先创建该账户):

[root@svr5 ~]# vim /etc/sudoers
.. ..
%wheel ALL=(ALL)  /bin/*
[root@svr5 ~]# usermod -a -G wheel zengye
[zengye@svr5 ~]$ sudo -l
.. ..
用户 zengye 可以在该主机上运行以下命令:
(root) /bin/*

  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

步骤五:为sudo机制启用日志记录,以便跟踪sudo执行操作

1)修改/etc/sudoers配置,添加日志设置

[root@svr5 ~]# visudo
Defaults  logfile="/var/log/sudo"
.. ..

  
  
  • 1
  • 2
  • 3

2)以root(默认有所有权限)执行sudo操作

[root@svr5 ~]# sudo -l                                  //查看授权的sudo操作
[softadm@svr5 ~]# sudo systemctl status httpd              //查看授权的sudo操作

  
  
  • 1
  • 2

3)确认日志记录已生效

[root@svr5 ~]# tail /var/log/sudo 
.. ..
May 16 22:14:49 : root : TTY=pts/1 ; PWD=/root ; USER=root ; COMMAND=list
Feb 22 22:35:43 : softadm : TTY=pts/11 ; PWD=/home/softadm ; USER=root ;
    COMMAND=/bin/systemctl status httpd

  
  
  • 1
  • 2
  • 3
  • 4
  • 5
                                </div>
            <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-b6c3c6d139.css" rel="stylesheet">
                                            <div class="more-toolbox">
            <div class="left-toolbox">
                <ul class="toolbox-list">
                    
                    <li class="tool-item tool-active is-like "><a href="javascript:;"><svg class="icon" aria-hidden="true">
                        <use xlink:href="#csdnc-thumbsup"></use>
                    </svg><span class="name">点赞</span>
                    <span class="count"></span>
                    </a></li>
                    <li class="tool-item tool-active is-collection "><a href="javascript:;" data-report-click="{&quot;mod&quot;:&quot;popu_824&quot;}"><svg class="icon" aria-hidden="true">
                        <use xlink:href="#icon-csdnc-Collection-G"></use>
                    </svg><span class="name">收藏</span></a></li>
                    <li class="tool-item tool-active is-share"><a href="javascript:;" data-report-click="{&quot;mod&quot;:&quot;1582594662_002&quot;}"><svg class="icon" aria-hidden="true">
                        <use xlink:href="#icon-csdnc-fenxiang"></use>
                    </svg>分享</a></li>
                    <!--打赏开始-->
                                            <!--打赏结束-->
                                            <li class="tool-item tool-more">
                        <a>
                        <svg t="1575545411852" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5717" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M179.176 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5718"></path><path d="M509.684 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5719"></path><path d="M846.175 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5720"></path></svg>
                        </a>
                        <ul class="more-box">
                            <li class="item"><a class="article-report">文章举报</a></li>
                        </ul>
                    </li>
                                        </ul>
            </div>
                        </div>
        <div class="person-messagebox">
            <div class="left-message"><a href="https://blog.csdn.net/xie_qi_chao">
                <img src="https://profile.csdnimg.cn/B/F/6/3_xie_qi_chao" class="avatar_pic" username="xie_qi_chao">
                                        <img src="https://g.csdnimg.cn/static/user-reg-year/1x/2.png" class="user-years">
                                </a></div>
            <div class="middle-message">
                                    <div class="title"><span class="tit"><a href="https://blog.csdn.net/xie_qi_chao" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;}" target="_blank">解启超</a></span>
                                        </div>
                <div class="text"><span>发布了330 篇原创文章</span> · <span>获赞 52</span> · <span>访问量 3万+</span></div>
            </div>
                            <div class="right-message">
                                        <a href="https://im.csdn.net/im/main.html?userName=xie_qi_chao" target="_blank" class="btn btn-sm btn-red-hollow bt-button personal-letter">私信
                    </a>
                                                        <a class="btn btn-sm attented bt-button personal-watch" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;}">已关注</a>
                                </div>
                        </div>
                </div>
</article>

猜你喜欢

转载自blog.csdn.net/weixin_46575696/article/details/105040752
今日推荐