zoukankan      html  css  js  c++  java
  • 009 用户管理--增加、删除用户

    用户管理

    linux中用户介绍

    什么是用户?

    用户其实就是相当于权限的化身,
    处于安全考虑
    所以,我们在进入系统之前都需要登录,根据用户给相应权限
    

    Linux系统中用户角色

    uid : Linux系统当中用户ID(相当于身份证号)
    gid : ANTA20163307
    
    用户组其实是统一某一类用户权限
    
    需求:
    	大项目 : 
    		开发者:a b c d
    		运维 : e f
    		测试:g
    	共同的权限:
    

    超级用户

    linux当中的老大(皇帝): root
    Windows当中的老大:administrator
    

    用户与组相关的文件

    • /etc/passwd
    • /etc/shadow(影子文件,将/etc/passwd加密写入到这里)
    • /etc/group
    • /etc/gshadow

    1、/etc/passwd

    #以:为分隔符,7列
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    
    root x 0 0 root /root /bin/bash
    用户名称 密码占位符 用户UID 用户GID 注释信息 用户家目录 登录shell
    第一列 第二列 第三列 第四列 第五列 第六列 第七列

    2、/etc/shadow

    #以:为分隔符,9列
    dbus:!!:18689::::::
    polkitd:!!:18689::::::
    tss:!!:18689::::::
    abrt:!!:18689::::::
    sshd:!!:18689::::::
    postfix:!!:18689::::::
    
    dbus !! 18689 0 99999 7 10 202991231
    用户名 密码 最近一次变更密码 密码最少使用天数 密码最长使用天数 密码过期预警天数 密码过期的宽恕时间 账号失效日期 保留
    第一列 第二列 第三列 第四列 第五列 第六列 第七列 第八列 第九列

    3、/etc/group

    #以:为分隔符,4列
    disk:x:6:
    lp:x:7:
    mem:x:8:
    kmem:x:9:
    wheel:x:10:
    cdrom:x:11:
    
    root x 0
    用户组名称 用户组密码占位符 用户组的,ID,GID 附加组
    第一列 第二列 第三列 第四列

    4、/etc/gshadow

    #以:为分隔符。4列
    stapusr:!::
    stapsys:!::
    stapdev:!::
    utmp:!::
    utempter:!::
    
    root
    用户组的名称 用户组的密码 用户组的管理者 用户组的附加组
    第一列 第二列 第三列 第四列

    用户管理命令

    创建用户

    [root@localhost ~]# useradd user1
    

    查看用户

    [root@localhost ~]# id user1
    uid=1002(user1) gid=1003(user1) 组=1003(user1)
    [root@localhost ~]# who # 查看所有登录的⽤户信息
    [root@localhost ~]# whoami # 查看当前登录的⽤户名
    

    删除用户

    [root@localhost ~]# userdel user1 # 删除⽤户user1,但不删除⽤户家⽬录和mail
    [root@localhost ~]# userdel -r user1 # 要想删彻底,加-r选项
    

    参数详解

    #怎样在Linux系统中添加⼀个新的⽤户账户
    1) 掌握useradd命令的功能:新增⼀个⽤户。
    2) 了解useradd命令的常⽤选项:
    3) –u:指定⽤户的UID
    4) –g:指定⽤户所属的主群
    –G:指定⽤户所属的附加群
    5) –d:指定⽤户的家⽬录
    6) –c:指定⽤户的备注信息
    7) –s:指定⽤户所⽤的shell
    8) -e:修改过期时间
    9) -M: 不创建家⽬录
    10) -r: 创建系统账户,uid处于系统⽤户范围内,默认就没有家⽬录
    
    #灵活应⽤useradd命令的举例:
    例如:在系统中新增⼀个fox(狐狸)⽤户的命令:useradd fox
    b) 例如:在系统中新增⼀个⽤户user01,属组为police以及uid为600的命令:
    useradd –u 600 –g police user01
    

    手动创建用户

    1. /etc/passwd
    2. /etc/shadow
    3. /etc/group
    4. /etc/gshadow
    5. 创建⽤户家⽬录,并⽤⽤户⽼家的模板/etc/skel/ 装修⼀下,注意权限
    6. 6、/var/spool/mail/xxx ⽤户邮箱⽂件

    修改用户信息(usermod)

    修改用户信息最主要的命令是usermod命令,其参数跟useradd基本一致。

    参数

    -c<备注> 修改用户账号的备注文字
    -d<登入目录> 修改用户登入时的目录
    -e<有效期限> 修改账号的有效期限
    -f<缓冲天数> 修改在密码过期后多少天即关闭该账号
    -g<群组> 修改用户所属的群组
    -G<群组> 修改用户所属的附加群组
    -l<账号名称> 修改用户账号名称
    -L 锁定用户密码,使密码无效
    -s 修改用户登入后所使用的shell
    -u 修改用户ID
    -U 解除密码锁定
    • 修改UID usermod -u

      [root@localhost ~]# tail -1 /etc/passwd
      xiaoyu:x:2002:2002::/home/xiaoyu:/bin/bash
      [root@localhost ~]# usermod -u 2302 xiaoyu
      [root@localhost ~]# tail -1 /etc/passwd
      xiaoyu:x:2302:2002::/home/xiaoyu:/bin/bash
      
    • 修改基本组及附加组 usermod -g(-G)

      # 基本组 : 一个用户必须拥有的哪个组
      [root@localhost ~]# tail -1 /etc/passwd
      xiaoyu:x:2302:2002::/home/xiaoyu:/bin/bash
      [root@localhost ~]# id xiaoyu
      uid=2302(xiaoyu) gid=2002(xiaoyu) groups=2002(xiaoyu)
      [root@localhost ~]# usermod -g group1 xiaoyu
      [root@localhost ~]# id xiaoyu
      uid=2302(xiaoyu) gid=2003(group1) groups=2003(group1)
      [root@localhost ~]# tail -1 /etc/passwd
      xiaoyu:x:2302:2003::/home/xiaoyu:/bin/bash
      [root@localhost ~]# 
      
      # 附加组 : 用户加入的其他用户组
      [root@localhost ~]# groupadd group1
      [root@localhost ~]# id
      uid=0(root) gid=0(root) groups=0(root),1000(oldboy),1001(sssssssssssssssssssssss),1002(test)
      [root@localhost ~]# usermod -G group1 root
      [root@localhost ~]# vim /etc/group
      [root@localhost ~]# tail -1 /etc/group
      group1:x:2003:root
      
    • 修改家目录 usermod -d

      [root@localhost ~]# usermod  -d /home/xiaoyu123 xiaoyu
      
      # 注:修改家目录仅仅修改了配置,而原来的家目录文件没有迁移
      
    • 修改用户描述信息 usermod -c

      [root@localhost ~]# tail -1 /etc/passwd
      xiaoyu:x:2302:2003::/home/xiaoyu123:/bin/bash
      [root@localhost ~]# usermod -c "这是一个甩锅" xiaoyu
      [root@localhost ~]# tail -1 /etc/passwd
      xiaoyu:x:2302:2003:这是一个甩锅:/home/xiaoyu123:/bin/bash
      
    • 修改用户默认解析器 usermod -s

      [root@localhost ~]# usermod -s /bin/sh xiaoyu
      [root@localhost ~]# tail -1 /etc/passwd
      xiaoyu:x:2302:2003:这是一个甩锅:/home/xiaoyu123:/bin/sh
      
    • 锁定与解锁

      [root@localhost home]# usermod -L xiaoyu
      [root@localhost home]# usermod -U xiaoyu
      
    • 修改登录名称 usermod -l

      [root@localhost home]# usermod -l dayu xiaoyu
      [root@localhost home]# tail -1 /etc/passwd
      dayu:x:2302:2003:这是一个甩锅:/home/xiaoyu123:/bin/bash
      
    • 追加组 usermod -a -G

      [root@localhost home]# id dayu
      uid=2302(dayu) gid=2003(group1) groups=2003(group1),1000(oldboy)
      [root@localhost home]# usermod -G root dayu
      [root@localhost home]# id dayu
      uid=2302(dayu) gid=2003(group1) groups=2003(group1),0(root)
      [root@localhost home]# usermod -G oldboy dayu
      [root@localhost home]# id dayu
      uid=2302(dayu) gid=2003(group1) groups=2003(group1),1000(oldboy)
      [root@localhost home]# usermod -a -G root dayu
      [root@localhost home]# id dayu
      uid=2302(dayu) gid=2003(group1) groups=2003(group1),0(root),1000(oldboy)
      

    密码(passwd)

    修改或添加Linux普通用户的密码。直接影响的文件是/etc/shadow

    参数

    -d 删除密码
    -l 锁定用户密码,无法被用户自行修改
    -u 解开已锁定用户密码,允许用户自行修改
    -e 密码立即过期,下次登陆强制修改密码
    -k 保留即将过期的用户在期满后能仍能使用
    -S 查询密码状态
    • 增加或修改密码

      当用户密码不存在的时候即为增加密码,当用户密码存在时即为修改密码。

      [root@localhost home]# useradd password
      [root@localhost home]# tail -1 /etc/passwd
      password:x:2303:2303::/home/password:/bin/bash
      [root@localhost home]# tail -1 /etc/shadow
      password:!!:18701:0:99999:7:::
      [root@localhost home]# passwd password
      Changing password for user password.
      New password: 
      BAD PASSWORD: The password is a palindrome
      Retype new password: 
      passwd: all authentication tokens updated successfully.
      [root@localhost home]# tail -1 /etc/passwd
      password:x:2303:2303::/home/password:/bin/bash
      [root@localhost home]# tail -1 /etc/shadow
      password:$6$.EmM.4Bl$f.LimfvMsxxFZq6yFklfyk08JKQORdQovlk2a2dtrpkP31lAMLQpezFqLheBYOTm4Sur9aAqZlC/6MN6wHFBM1:18701:0:99999:7:::
      [root@localhost home]# 
      
    • 免交互修改密码

      [root@localhost home]# echo "123" | passwd --stdin dayu
      Changing password for user dayu.
      passwd: all authentication tokens updated successfully.
      

    用户组

    就类似于班级,是某个同权限用户的集合。

    创建组

    groupadd

    -g 指定新建工作组的id
    -r 创建系统工作组,系统工作组的组ID小于1000
    -K 覆盖配置文件“/ect/login.defs”
    -o 允许添加组ID号不唯一的工作组
    [root@localhost home]# groupadd group2
    [root@localhost home]# tail -1 /etc/group
    group2:x:2304:
    [root@localhost home]# 
    
    • 指定gid
    [root@localhost home]# groupadd -g 2204 group3
    [root@localhost home]# tail -1 /etc/group
    group3:x:2204:
    
    • 创建系统组
    [root@localhost home]# groupadd -r group4
    [root@localhost home]# tail -1 /etc/group
    group4:x:996:
    

    修改组

    groupmod

    -g 设置欲使用的群组识别码
    -o 重复使用群组识别码
    -n 设置欲使用的群组名称
    • 修改名称

      [root@localhost home]# tail -8 /etc/group
      girl:x:2001:
      [root@localhost home]# groupmod -n boy girl
      [root@localhost home]# tail -8 /etc/group
      boy:x:2001:
      
    • 修改gid

      [root@localhost home]# groupmod -g 2021 boy
      [root@localhost home]# tail -8 /etc/group
      boy:x:2021:
      

    删除组

    用户组在系统中删除,如果一个组被用户占用则不能删除。

    [root@localhost home]# groupdel group4
    [root@localhost home]# tail -8 /etc/group
    dajige:x:1003:
    abc:x:2000:
    xiaoyu:x:2002:
    group1:x:2003:root
    password:x:2303:
    group2:x:2304:
    group3:x:2204:
    boy:x:2021:
    [root@localhost home]# 
    
    # 注:用户被删除,用户基本组也会被删除
    [root@localhost home]# useradd test-group-del
    [root@localhost home]# tail -1 /etc/passwd
    test-group-del:x:2304:2305::/home/test-group-del:/bin/bash
    [root@localhost home]# tail -1 /etc/group
    test-group-del:x:2305:
    [root@localhost home]# userdel -r test-group-del
    [root@localhost home]# tail -1 /etc/passwd
    password:x:2303:2303::/home/password:/bin/bash
    [root@localhost home]# tail -1 /etc/group
    boy:x:2021:
    [root@localhost home]# 
    

    组成员管理

    gpasswd

    -a 添加用户到组
    -d 从组删除用户
    -A 指定管理员
    -M 指定组成员和-A的用途差不多
    -r 删除密码
    -R 限制用户登入组,只有组中的成员才可以用newgrp加入该组
    # 添加一个组到用户
    [root@localhost home]# useradd gtest
    [root@localhost home]# vim /etc/group
    [root@localhost home]# id gtest
    uid=2304(gtest) gid=2305(gtest) groups=2305(gtest),2204(group3)
    [root@localhost home]# gpasswd -a gtest group2
    Adding user gtest to group group2
    [root@localhost home]# id gtest
    uid=2304(gtest) gid=2305(gtest) groups=2305(gtest),2304(group2),2204(group3)
    
    # 添加多个组到用户
    [root@localhost home]# gpasswd -M gtest,root,dayu group
    gpasswd: group 'group' does not exist in /etc/group
    [root@localhost home]# gpasswd -M gtest,root,dayu group3
    [root@localhost home]# id root
    uid=0(root) gid=0(root) groups=0(root),2000(abc),2003(group1),2204(group3)
    [root@localhost home]# id dayu
    uid=2302(dayu) gid=2003(group1) groups=2003(group1),0(root),1000(oldboy),2204(group3)
    [root@localhost home]# id gtest
    uid=2304(gtest) gid=2305(gtest) groups=2305(gtest),2304(group2),2204(group3)
    
    # 为一个组添加组长(组长有权限向组内添加用户,其他用户[除root外]没有权限添加用户到该组)
    [root@localhost ~]# gpasswd -A dayu group3
    [root@localhost ~]# cat /etc/gshadow
    group3:!:dayu:gtest,dayu,oldboy
    
    # 组权限
    [root@localhost ~]# id dayu
    uid=2302(dayu) gid=2003(group1) groups=2003(group1),1000(oldboy),2204(group3)
    [root@localhost ~]# chown .group3 /tmp/12.txt 
    [root@localhost ~]# ls -l /tmp/12.txt
    -rw-r--r-- 1 root group3 4 Mar 15 11:35 /tmp/12.txt
    [root@localhost ~]# chmod g+w /tmp/12.txt
    [root@localhost ~]# ls -l /tmp/12.txt
    -rw-rw-r-- 1 root group3 4 Mar 15 11:35 /tmp/12.txt
    [root@localhost ~]# su - dayu
    Last login: Mon Mar 15 11:37:05 CST 2021 on pts/3
    [dayu@localhost ~]$ echo "456" > /tmp/12.txt 
    [dayu@localhost ~]$ cat /tmp/12.txt
    456
    [dayu@localhost ~]$ 
    
  • 相关阅读:
    volume 方式使用 Secret【转】
    查看 Secret【转】
    用 k8s 管理机密信息【转】
    MySQL 如何使用 PV 和 PVC?【转】
    【docker问题】Client.Timeout exceeded while awaiting headers
    PV 动态供给【转】
    回收 PV【转】
    NFS PersistentVolume【转】
    PV & PVC【转】
    IO流中的常见问题
  • 原文地址:https://www.cnblogs.com/zhaokunhao/p/14524468.html
Copyright © 2011-2022 走看看