美文网首页
用户管理 user__有关 组相关

用户管理 user__有关 组相关

作者: _str_ | 来源:发表于2019-08-03 13:57 被阅读0次

    用户管理

    linux系统中是根据二进制数来操作
    用户是 UID(十进制数字)
    组是用GID(十进制数字)
    系统是根据文件的id号访问不是根据文件名字

    用户基本信息和密码信息

    用户信息保存在 /etc/passwd文件中
    shark:x:1002:1002::/home/shark:/bin/bash
    用户密码的信息保存在 /etc/shadow文件中
    nginx:!!:18101:0:99999:7:::
    意义 第一个是用户名 两个!!是显示创建的用户但没有设置密码
    后面的18101是兄1970年1月1号到现在累加的日期
    计算某个日期的累积天数

    echo $(( $(date --date="2019/07/24" +%s) /86400+1))
    

    1、密码不可被更的天数(修改密码后需要几天后才能再次被修改)
    2、密码需要重新修改的天数(密码修改后规定多少天后还需再次修改一次)
    3、距离密码要修改的天数(会设置一个数字 数字是几 就在临近修改密码的前几天提示用户更新密码)
    4、密码过期后的账号宽限时间(密码到期了账户依然可以登录,但是登录时会提示你密码更新,否则无法继续操作)
    5、账号失效日期(通常会用到收费系统上)

    UID

    0 属于系统管理员
    1~999 属于系统用户
    1000~2^32-1 给其他用户使用

    用户编辑修改命令

    useradd 添加用户
    useradd [-u] [-g 初始群组] [-G 次要群组][-mM][-c 说明栏] [-d 家目录]
    
    -M  不自动建立一个用户登入目录
    -m  自动建立一个用户登入目录
    -r    创建一个系统用户
    -s   后面接指定目录 没指定默认为/bin/bash
    -e   后面接一个日期 格式是“2019-07-24”也可作为账号失效日期
    useradd   username -G group_name   #添加一个用户并添加一个附加组
    

    新增一个系统用户指定shell为/sbin/nologin

    useradd -r -s  /sbin/nologin shark
    
    useradd的默认值
    useradd -D
    GROUP=100
    HOME=/home
    INACTIVE=-1
    EXPIRE=
    SHELL=/bin/bash
    SKEL=/etc/skel
    CREATE_MAIL_SPOOL=yes
    
    设置用户密码
    root用户可以设置任何人的密码
    [root@localhost ~]# passwd  用户
    普通用户修改密码需进入这个用户中
    [root@localhost shark]# passwd
    
    修改用户信息 usermod
    root用户执行
    usermod 命令参数 用户名
    -c   后面接账号的说明
    -d   后面接账号的主文件夹
    -e   后面接日期
    -f    后面接天数
    -g   后面接初始群组
    -G  后面接次要群组
    -a   添加群组
    -l    修改账号名称
    -s   后面接shell实际文件即目录
    -u   后面接UID
    -L   对使用者密码冻结
    -U   接触锁定
    

    示例 把用户shark添加到wheel组中

    usermod   -a           -G      wheel   shark
    命令         添加       组        组名     用户名
    

    拓展

    gpasswd命令
    gpasswd  - a  用户  组    #添加组成员用户
             - d  用户  组   #删除组成员用户
             - M  用户,用户,用户...     组    #可以添加多个用户到一个组里
    
    删除用户userdel

    用户存在用户名跟数据,数据有:
    账号和密码:/etc/passwd, /etc/shadow
    组:/etc/group, /etc/gshadow
    个人文件数据:/home/username, /var/spool/mail/username..
    等等
    删除的话不会把家目录和邮箱删了只会把这个用户名给删了

    userdel shark   只删除用户
    userdel -r shark   将这个用户的所有都删了
    

    初始组(initial group):创建用户的时候默认创建一个和用户名同名的组。后期可以修改。初始组的 GID 会出现在 /etc/passwd 中,用户的存放 GID 的位置,用户已登录到系统中就会拥有此组的权限。
    有效组(effective group):后来加入的组
    Linux 系统中的组信息存放在 /tec/group 文件中,可以分为四个部分

    joint     :    x     :      1020     :     dph,djh,rxb,wjw
    组名          密码           组ID             组内成员
    # UID 范围及意义,和 UID 几乎相同。 0 是管理员用户的初始组
    

    关于组的命令

    groups 查看用户都加入了哪些组
    [root@localhost ~]# groups  #查看自己的当前的组
    [root@localhost ~]# groups dph   #查看dph用户属于哪个组
    dph : dph joint    #所属的组为joint
    
    groupadd 新增组
    groupadd -g group_name #单独添加组
             -r group_name  #添加系统组
    
    groupdel 删除组
    groupdel  group_name
    

    用户身份切换

    su

    切换别的用户,但是需要提供密码
    root切换别的用户不需要密码

    语法

    su - [-c] [用户名]

    sudo

    是用于使用普通用户的身份去执行root身份才有权执行的命令操作
    必要条件:
    1、需要把普通用户设置为sudo用户
    2、使用sudo的时候需要提供root的用户名

    语法

    sudo [-b] [-u]
    -b 后面接着指令放到后台中让系统或者后台执行,与目前的shell不会有影响
    -u 后面可以接想要指定切换的使用者, 如果不加就代表切换身份到root
    切换到sshd用户,并在/tmp目录下创建一个普通文件
    sudo -u sshd touch /tmp/sshd.file

    sudo执行流程

    1、使用者执行sudo时,系统于/etc/sudoers文件中搜寻该使用者是否有执行sudo的权限
    2、使用者具有可执行sudo权限后,就得用使用者的密码来确认
    3、密码输入成功后,就可以进行sudo后的指令(root执行sudo时,不需要输入密码)
    4、切换身份与执行者身份一样也不需要密码

    visudo将普通用户设置为sudo用户

    设置格式

    root              ALL=(ALL)                              ALL
    用户             从哪登录的,括号里的是想切换成那个用户      命令
    

    括号里的ALL可以是有多个
    命令可以是多个用逗号隔开,不过有的涉及权限应该是大权限在前小权限在后

    [root@localhost ~]# su - one  #创建一个用户
    [one@localhost ~]$ which su   #查看one用户的路径
    /bin/su
    [one@localhost ~]$ exit
    logout
    [root@localhost ~]# visudo #进入里面修改命令
    #change-pass ALL=(root) /bin/su -
    #shark ALL=(one,change-pass)  /bin/su -
    #one ALL=(root) NOPASSWD:ALL
    [root@localhost ~]# su - one #再次进入one用户
    Last login: Wed Jul 24 15:13:46 CST 2019 on pts/0
    [one@localhost ~]$ sudo su -  #执行sudo su -
    Last login: Wed Jul 24 15:07:53 CST 2019 on pts/0
    [root@localhost ~]# id  #回到root查看id为root的
    uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
    

    只要不退出sudo就不需要在输入密码,没有时间限制重新输入密码

    免密码命令
    one   ALL=(ALL)  NOPASSWD:ALL
    
    切换指定身份
    shark ALL=(root)   /user/bin/passwd   #可以修改密码
    
    限制使用的命令
    shark  ALL=(root)  !/user/bin/passwd,/user/bin/passwd[A-Za-z]*
    #允许shark用户以root身份修改其他用户的密码,但不允许修改root的密码
    
    用户别名和命令别名
    User_Alias ADMPW = shark1, shark2
    Cmnd_Alias ADMPWCOM = !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
    ADMPW   ALL=(root)  ADMPWCOM
    #在visudo里面修改
    
    sudo和su

    普通用户切换为root身份,并且不需要输入root的密码

    User_Alias  ADMINS = shark1, shark2
    ADMINS ALL=(root)  /bin/su -
    

    相关文章

      网友评论

          本文标题:用户管理 user__有关 组相关

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