美文网首页
Day-9用户密码的设置,修改,组的创建,修改,删除,sudo提

Day-9用户密码的设置,修改,组的创建,修改,删除,sudo提

作者: 郭文政 | 来源:发表于2019-08-06 20:24 被阅读0次

    1.用户密码的设置

    passwd 后面加用户名可以创建或修改其他用户的密码(只有root用户能操作)
    passwd 后面不加用户名,默认修改当前用户密码
    

    2.组的创建,修改,及删除

    1)组的创建
    groupadd
    选项 -g 指定创建组的gid
    ps:如果创建用户没有指定基本组,系统会创建一个和用户名一样的基本组,放在/home下,叫做私有组
    
    2)组的修改
    groupmod
    选项 -g  修改组的gid  -n  修改组名
    
    3)组的删除
    groupdel
    后面加组名,删除指定组
    基本组中如果有成员,那么不能直接删除该组,需要先删除基本组中的用户
    如果附加组中没有基本组成员,可直接删除,同样,如果有基本组成员,需要先删除用户,再删除组
    
    4)组的信息存放位置
    组的信息存放在/etc/group目录下
    root:x:0:
    第一列是组名,第二列是组的密码,第三列是gid,第四列是附加组成员
    组的密码信息存放在/etc/gshadow
    root:::
    第一列是组名,第二列是组的密码,第三列是组的管理员,第四列是附加组成员
    
    5)系统默认设置的依据
    系统有许多创建用户和组的默认设置是依据/etc/login.defs和/etc/default/useradd这两个文件
    /etc/login.defs
    MAIL_DIR    /var/spool/mail
    用户邮箱默认保存在/var/spool/mail
    PASS_MAX_DAYS   99999
    密码最大使用天数
    PASS_MIN_DAYS   0
    密码最小使用天数
    PASS_MIN_LEN    5
    密码最小长度
    PASS_WARN_AGE   7
    过期前七天提醒修改密码
    UID_MIN                  1000
    uid最小为1000
    UID_MAX                 60000
    uid最大为60000
    SYS_UID_MIN               201
    系统uid最小为201
    SYS_UID_MAX               999
    系统uid 最大为999
    GID_MIN                  1000
    gid 最小为1000
    GID_MAX                 60000
    gid最大为60000
    SYS_GID_MIN               201
    系统组gid 最小为201
    SYS_GID_MAX               999
    系统组gid 最大为999
    CREATE_HOME yes
    默认创建家目录
    UMASK           077
    USERGROUPS_ENAB yes
    创建用户时如果不指定基本组,会默认创建一个和用户名相同的组,默认
    是开启的,
    ENCRYPT_METHOD SHA512 
    /etc/default/useradd
    GROUP=100
    如果把/etc/default/useradd USERGROUPS_ENAB yes关闭,且不给用户指定
    基本组,那么,系统会将gid为100的这个组指定为这个用户的基本组
    HOME=/home
    系统默认用户家目录在/home下
    INACTIVE=-1
    密码过期后失效,-1为不开启
    EXPIRE= 
    密码失效时间 不写为不限时间
    SHELL=/bin/bash 
    默认shell 是/bin/bash
    SKEL=/etc/skel  
    默认环境变量文件在/etc/skel下拷贝
    CREATE_MAIL_SPOOL=yes   
    默认创建用户时,创建邮箱
    

    3.sudo提权

    1)shell的分类
    shell分为交互式shell,非交互式shell,登陆式shell,非登陆式shell
    交互式shell是输一句命令,回一句答复,类似于passwd修改用户密码
    非交互式shell是一次性输入全部代码,可以一次性执行出所有的任务类似于shell脚本
    登陆式shell是登陆时需要输入用户名和密码 例如su -命令
    非登陆式shell是不需要输入用户名和密码就可以登陆 例如 su 
    
    2)su和 su -
    但是su 登陆用户和 su -登陆用户加载的变量是不相同的
    su 登陆的用户只会加载出一部分的变量
     ~/.bashrc->/etc/bashrc->/etc/profile.d/*.sh
    而su - 将会加载出全部的变量
    /etc/profile->/etc/profile.d/*.sh->~/.bash_profile->~/.bashrc->/etc/bashrc
    ps:环境变量分为个人环境变量和全局环境变量
    个人环境变量存放位置~/.bash_profile ~/.bashrc
    全局环境变量存放位置/etc/profile /etc/profile.d/*.sh /etc/bashrc
    
    3)sudo提权的两种方式
    首先是创建虚拟组提权
    visudo 或者vim /etc/sudoers 一般都会用前者
    #首先,创建一个syy用户,sg用户,YY用户,GG用户
    visudo
    User_Alias ABC=sg,syy
    User_Alias DEF=GG,YY
    #创建一个虚拟组ABC,将sg和syy用户加入,创建一个虚拟组DEF,将GG和YY用户加入,这两个组是虚拟的,不是系统组
    #将两个用户加入之后,修改组,就相当于对用户做修改
    Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig, /usr/bin/systemctl start, /usr/bin/systemctl stop, /usr/bin/systemctl reload, /usr/bin/systemctl restart, /usr/bin/systemctl status, /usr/bin/systemctl enable, /usr/bin/systemctl disable
     Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum
     Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe, /bin/mount, /bin/umount
     Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool
    #然后给命令做一个分组,可以批量给用户授予命令
     ABC     ALL=(ALL)       SERVICES,SOFTWARE
    DEF     ALL=(ALL)       STORAGE,NETWORKING
    #就是给ABC组的两个用户syy和sg授予哪些分组的命令,这样就修改完毕,保存退出!
    visudo -c  #可以检查自己是否有语法错误
    #然后su - syy进入syy用户
    sudo -l #可以查看授予了自己什么权限
    sudo 后面加命令可以使用提权之后的命令
    
    第二种方法是创建真实的组提升权限
    groupadd 11
    groupadd 22
    #先创建两个组 11和22
    usermod sg -G 11 
    usermod syy -G 11
    usermod GG -G 22
    usermod YY -G 22
    #首先将两个用户分别加入创建的组11和22
    visudo 打开
    %11       ALL=(ALL)       SERVICES,NETWORKING
    %22       ALL=(ALL)       SOFTWARE,STORAGE
    #%号后后面加组名,给组中成员添加分组中的命令保存退出之后
    #然后visudo -c可以检查是否有语法错误
    #同上 su - 切换用户之后,sudo -l 查看自己分配的权限
    #sudo 后面加命令即可执行
    
    sudo的命令执行流程
    * 用户输入sudo命令之后,系统会检查/etc/db/sudo 中时间戳有没有过期,如果过期,需要输入自己的密码验证
    * 如果没过期,则会检查/etc/sudoers是否有权限,有权限则执行,没权限则退出sudo
    

    相关文章

      网友评论

          本文标题:Day-9用户密码的设置,修改,组的创建,修改,删除,sudo提

          本文链接:https://www.haomeiwen.com/subject/zoawdctx.html