RH124学习笔记---linux用户权限su和sudo

用户受权
    生产环境中,root用户密码只有极少数人知道,普通员工只能使用普通用户登陆,
    若是普通用户须要执行特殊操做,有两种方法。
    (1)su -root ,切换到root执行特殊操做,而后再返回到普通用户
    (2)sudo 
    su
    优势:
    使用简单
    缺点:
    一、root密码容易泄露
    二、普通用户可执行的操做不可控
    sudo命令
    做用:给普通用户受权,让普通用户能够执行特定操做的权限
    缺点:须要进行配置受权
    优势:
    一、不须要切换到root用户(不须要知道root的密码)
    二、用户可执行的命令都是预先设置好的(可执行的权限是可控的)
    三、能够记录每一个用户所执行过的命令
    sudo的使用
    第一步:经过sudo的配置文件为普通用户受权
    第二部:普通用户使用sudo来执行特定的操做
    sudo的配置文件
    /etc/sudoers  
    格式:
    用户名   主机=(切换的用户)  可执行的命令
    说明
    用户名:普通用户的名称
    主机:能够在哪一个主机上执行特定的命令
    ALL 表示任意主机
    localhost 表示当前主机
    hostName 表示具体的主机名
    ***.***.***.*** 表示一个ip地址(192.168.6.123)
    ***.***.***.***/netmask 表示一个网段(192.168.6.0/24)
    切换的用户:切换到指定的用户来执行后面的命令,一般的都是root用户
    表示的方式
        一、(all)
        二、(root)
        三、 空
    可执行的命令:用户能够执行命令
        格式:命令1,命令2……
        补充:能够用通配符的方式
        例子:给test赋权,让这个用户能够在任意主机切换到root用户执行useradd
    test    ALL=(ALL)       /usr/sbin/useradd
    注意:修改sudo的配置文件,一般不用vi,而是用visodu命令
    使用visodu来修改配置文件,若是你修改的配置文件有错误,那么系统会提示有错,而且阻止保存。
    例子:让普通用户laowantong能够在任意主机上执行useradd和userdel命令
    一、建立用户laowantong
    useradd laowantong
    passwd laowantong
    二、修改sudo配置文件
    visudo
    laowantong ALL=(root)  /usr/sbin/useradd,/usr/sbin/userdel
    三、用普通用户laowantong登陆系统,而后执行新建用户和删除用户的操做
    sudo useradd zhoubotong
    sudo userdel zhoubotong
    思考:为何用sudo的时候,会提示输入密码
    为何第二次不须要输入密码   
    普通用户在执行sudo的时候,会在/var/db/sudo/lectured/下生成该用户的一个秘钥,
    这个用户的秘钥有效期是5分钟,这样在5分钟以内再次执行sudo的时
    候,是不须要输入密码的。
    扩展受权格式
    test ALL=(root) /usr/sbin/useradd
    test ALl=(root)  ALL
    %gp01 ALL=(root)  /usr/sbin/useradd
    test  ALL=(root) /usr/sbin/*
    %gp01 ALL=(root)/usr/sbin/useradd,/usr/sbin/userdel
    %gp01 ALL=(root)NOPSAAWD:/usr/sbin/useradd,/usr/sbin/userdel  不用输入密码
    %gp01 ALL=(root)NOPASSWD:/usr/sbin/useradd,NOPASSWD:/usr/sbin/userdel 不用输入密码
    test ALL(root) NOPASSWD:ALL  不用输入密码
    %gp01  ALL(root)  /usr/sbin/*,!/usr/sbin/useradd   除了/usr/sbin/useradd 不能执行
    注意:若是直接是一个字符串,那么这几一个用户名
    若是在字符串前面有个%,那么这是一个用户组
    用户使用sudo的基本流程
    一、sudo
    -------->>>>>var/db/sudo/检查时间戳是否过时
    -------->>>>>若是过时,要求从新输入密码
    -------->>>>>记录时间戳到/var/db/sudo --检查/etc/sudoers 是否有受权
    -------->>>>>若是有执行命令
    -------->>>>>若是还没有过时--->>>>>检查/etc/sudoers 是否有受权
    -------->>>>>若是有执行命令
    -------->>>>>报错提示无权限,并退出sudo
    sudo配置文件的构成
    定义别名
    受权规则
    别名的类别
    Host_Alias:主机别名。别名字母必须都是大写,成员能够是主机、网段
    Host_Alias MYHOST = zhangsan,lisi
    Host_Alias MYHOST = ALL
    Host_Alias MYHOST =locahost,192.168.6.0/24,172,10.0.0/16
    User_Alias:用户别名。别名字母必须都是大写,成员都是系统中的用户,
    也能够是组
    User_Alias MYUSER =tom,jerry
    User_Alias MYUSER =tom,jerry,%gp01
    Cmnd_Alias:命令别名,成员都是系统中的命令,这里最好用命令的绝对路径。
    Cmnd_Alias MYCMD = usr/sbin/useradd,usr/sbin/userdel
    Cmnd_Alias MYCMD = usr/sbin/*,/usr/bin*
    Cmnd_Alias MYCMD = usr/sbin/*,/usr/bin* !/usr/sbin/useradd
    Runas_Alias:角色别名,成员一般都是root或者其余权限较高的用户,用的比较少
    注意:一、别名的名称中的字母必须都是大写
         二、别名中的能够有数字和下划线,可是必须以字母为开头
    主机别名举例
    Host_Alias H1 = localhost,zhangsan,lisi,192.168.6.123,172.20.0.0/16
    用户别名举例
    User_Alias DEV = zs,ls,ww,%admin
    命令别名举例
    Cmnd_Alias CMND1 = /usr/sbin/useradd, /usr/sbin/userdel,/bin/*,/sbin/[a-g]*
    Cmnd_Alias CMND1 = /usr/sbin/useradd, NOPASSWD:/usr/sbin/userdel,/bin/*,!/bin/find,/sbin/[a-g]* 
    特殊写法
    User_Alias DEV = zs,ls,ww,%admin: NET = dehua,degang
    sudo的受权规则
    格式:
    受权用户 主机=[(切换到的用户)] [NOPASSWD:]命令1,[(切换到的用户)] [NOPASSWD:]命令2,
    [(切换到的用户)] [NOPASSWD:]命令3……
    说明:
    一、[]中的内容都是可省略的
    二、命令和命令之间用逗号分隔
    三、若是省略[(切换到的用户)],表示切换到root用户执行后面的命令
    四、若是(切换到的用户)写出(ALL),表示切换到全部用户,从全部用户中
    找出能够执行后面的命令并执行命令
    五、若是[NOPASSWD:]省略,则表示在用户首次使用sudo时候输入密码,密码有效期为5分钟
    timi ALL= /bin/*    
    timi ALL= /usr/bin/passwd, !/usr/bin/passwd root
    timi ALL= /bin/vi, !/bin/vi /etc/*
    或者
    Cmnd_Alias CMD_TIMI = /bin*,  /usr/bin/passwd, !/usr/bin/passwd root,/bin/vi, !/bin/vi /etc/*
    timi ALl= CMD_TIMI
    sudo-l
    User timi may run the following commands on this host:
    (root) /usr/bin/passwd
    sudo命令的选项
    -l:查看当前用户的受权信息
    -k:让当前主机上的sudo秘钥马上失效
    visudo命令选项
    -c:检查sudo的配置文件是否有语法错误
    治理公司root权限泛滥的状况
    第一步:分析员工的类别
    分析梳理公司须要使用服务器的员工的数量和类别
    开发一、开发2……开发主管
    运营一、运营2……运营主管
    初级运维一、初级运维二、初级运维3
    中级运维一、中级运维二、中级运维3
    高级运维一、高级运维二、高级运维3
    第二步:分析各种员工要执行的操做
    开发:上传和下载、建立目录、文件、删除文件、目录
    开发主管:上传和下载、建立目录、文件、删除文件、目录
    运营……
    运营主管……
    第三步:结合要执行的操做给出必须的命令
    将命令反馈给各个部门,让他们检查是否知足平常的操做需求
    第四步:sudo受权
    定义命令别名
    定义用户别名
    定义主机别名
    sudo受权
    第五步:测试受权是否可用
相关文章
相关标签/搜索