zoukankan      html  css  js  c++  java
  • linux基础学习-15.6-sudo临时让用户获得root权限

    1、测试sudo

    echo "Defaults logfile=/var/log/sudo.log">>/etc/sudoers

    visudo -c

    测试:root用户下

    [root@oldboyedu-35 tmp]# tailf /var/log/sudo.log

    Apr 7 23:54:10 : oldboy : TTY=pts/1 ; PWD=/home/oldboy ; USER=root ;

    COMMAND=list

    Apr 8 00:24:36 : oldboy : command not allowed ; TTY=pts/1 ; PWD=/home/oldboy ;

    USER=root ; COMMAND=/usr/bin/passwd root

    测试:oldboy用户下

    [oldboy@oldboyedu-35 ~]$ sudo passwd root

    [sudo] password for oldboy:

    Sorry, user oldboy is not allowed to execute '/usr/bin/passwd root' as root on oldboyedu-35.

    2、sudo授权最小化 例题:给oldboy用户授权passwd命令,安全不能把皇帝推翻

    第一个里程碑-不让修改root密码

    oldboy ALL=(ALL) /usr/bin/passwd, ! /usr/bin/passwd root

    oldboy用户:sudo passwd root XXXXX

    oldboy: sudo passwd 如何限制?

    解决方法:用户修改密码的时候 必须加上用户名

    第二个里程碑-不让修改root sudo passwd

    ##限制的方法 --用户修改密码的时候 必须加上用户名

    oldboy ALL=(ALL) /usr/bin/passwd [a-zA-Z0-9]*

    第三个里程碑-彻底不让修改root密码

    oldboy ALL=(ALL) /usr/bin/passwd [a-zA-Z0-9]*, ! /usr/bin/passwd root

    [oldboy@oldboyedu-35 ~]$ sudo passwd

    Sorry, user oldboy is not allowed to execute '/usr/bin/passwd' as root on oldboyedu-35.

    [oldboy@oldboyedu-35 ~]$ sudo passwd root

    Sorry, user oldboy is not allowed to execute '/usr/bin/passwd root' as root on oldboyedu-35.

    3、sudo权限集中管理项目

    背景:root泛滥

    #第一个里程碑-演员--用户:

    ###用户别名分类:

    ##《用户必须存在》

    ## 根据部门把用户分类---------用户别名

    ##

    ####把公司人员(需要使用服务器)分类

    ####sa ----- system admin 系统管理员

    User_Alias KAIFA_ADMINS = kaifa01, kaifa02

    User_Alias ADMINS = oldboy, oldgirl, %sa

    User_Alias NETADMINS = leo,maya

    #第二个里程碑-这些用户要干什么:

    #知道大家每个部门用的命令

    #命令分类

    #然后创建命令别名

    Cmnd_Alias USERCMD = /usr/sbin/useradd, /usr/sbin/userdel, /usr/bin/passwd , /bin/chown, /bin/chmod

    Cmnd_Alias DISKCMD = /sbin/fdisk, /sbin/parted

    Cmnd_Alias NETMAGCMD = /sbin/ifconfig, /etc/init.d/network

    Cmnd_Alias CTRLCMD = /usr/sbin/reboot, /usr/sbin/halt

    Cmnd_Alias LOOKCMD = /bin/grep, /usr/bin/tail, /bin/cat, /usr/bin/less

    #####第三个里程碑---演戏---规划每个演员做什么动作 (每个用户执行什么命令)

    开发人员: User_Alias KAIFA_ADMINS = kaifa01, kaifa02

            命令权限:LOOKCMD
    
    
            身份权限:root
    

    运维人员: User_Alias OLD_ADMINS = oldboy, oldgirl, %sa

            命令权限:USERCMD, DISKCMD, NETMAGCMD, CTRLCMD, LOOKCMD
    
    
            身份权限:root
    

    网络工程师:User_Alias NETADMINS = leo,maya

            命令权限:NETMAGCMD
    
    
            身份权限:root
    

    ####第四个里程碑-拍片

    #授权: 什么用户执行什么命令

    #root ALL=(ALL) ALL

    #用户 机器 角色 命令

    KAIFA_ADMINS ALL=(root) LOOKCMD

    ADMINS ALL=(root) USERCMD, DISKCMD, NETMAGCMD, CTRLCMD, LOOKCMD

    NETADMINS ALL=(root) NETMAGCMD

    ####第五个里程碑-后期5毛钱特效--修改配置文件

    ###快速命令

    ###useradd

    groupadd sa

    useradd leo && echo 123|passwd --stdin leo

    useradd maya && echo 123|passwd --stdin maya

    useradd zuma && echo 123|passwd --stdin zuma

    useradd ett && echo 123|passwd --stdin ett

    useradd kaifa01 && echo 123|passwd --stdin kaifa01

    useradd kaifa02 && echo 123|passwd --stdin kaifa02

    ###user alias

    User_Alias KAIFA_ADMINS = kaifa01, kaifa02

    User_Alias ADMINS = oldboy, oldgirl, %sa

    User_Alias NETADMINS = leo,maya

    ##command alias

    Cmnd_Alias USERCMD = /usr/sbin/useradd, /usr/sbin/userdel,

    /usr/bin/passwd [A-Za-z]*, /bin/chown, /bin/chmod

    Cmnd_Alias DISKCMD = /sbin/fdisk, /sbin/parted

    Cmnd_Alias NETMAGCMD = /sbin/ifconfig, /etc/init.d/network

    Cmnd_Alias CTRLCMD = /usr/sbin/reboot, /usr/sbin/halt

    Cmnd_Alias LOOKCMD = /bin/grep, /usr/bin/tail, /bin/cat, /usr/bin/less

    ##rules

    KAIFA_ADMINS ALL=(root) LOOKCMD

    ADMINS ALL=(root) USERCMD, DISKCMD, NETMAGCMD, CTRLCMD, LOOKCMD

    NETADMINS ALL=(root) NETMAGCMD

    ####第六个里程碑-试映---检查

    1. 多开几个窗口--标记好了

    2. 大象放冰箱-一步一步来

    4、sudo 配置文件/etc/sudoers 授权规则注意事项总结:

    1) 授权规则中的所有ALL字符串必须为大写字母

    2) 允许执行的命令是有顺序的。前面的为允许,后面的为禁止,执行命令的顺序是从后往前执行的

    /usr/sbin/*,/sbin/*,!/usr/sbin/visudo,!/sbin/fdisk

    再次强调,禁止的命令尽量放在后面

    3) 一行内容超长可以用“”反斜线换行

    4) !叹号表示非,就是命令取反的意思,即禁止执行的命令

    5) 根据实际情况,来分类制作命令别名,用什么就给什么权限

    练习题:

    1、如何设置sudo权限

    2、给oldboy用户授权passwd命令,安全不能把皇帝推翻(sudo权限最小化)

    3、企业级root权限泛滥,如何解决(分员工设置权限)

  • 相关阅读:
    Java最常见的面试题:模块十一
    Java最常见的面试题:模块九和模块十
    Java最常见的面试题:模块八
    Java最常见的面试题:模块七
    【leetcode】跳跃游戏
    【leetcode】字母异位词分组
    【C++】STL各容器的实现,时间复杂度,适用情况分析
    【C++】如何使用GCC生成动态库和静态库
    【C++】C++中基类的析构函数为什么要用virtual虚析构函数?
    【leet-code】接雨水
  • 原文地址:https://www.cnblogs.com/Klanti/p/9143538.html
Copyright © 2011-2022 走看看