Linux 用户 组
Linux是一个多任务,多用户的操作系统。多个用户可以在同一时间操作系统执行不同的任务,一个用户也可以多个人登陆操作。一般来说root的权限最大。

1、用户管理

useradd:添加用户

  1. # 添加用户,进入/home文件夹/创建用户和主目录
  2. $ cd /home
  3. # 查看
  4. $ ll
  5. # 创建组名
  6. $ useradd -m fcant
  7. # 查看
  8. $ ll
  9. # 创建用户名
  10. $ useradd -mg fcant fcc
  11. # 查看
  12. [root@mobai home]# ll
  13. 总用量 0
  14. drwx------. 2 fcant fcant 62 5 29 11:25 fcant
  15. drwx------. 2 fcc fcant 62 5 29 11:25 fcc

passwd:给用户设置密码

  1. # 设置密码
  2. $ passwd fcant

su:切换用户

  1. # 切换用户
  2. $ su fcant

userdel:删除用户

  1. # 切换回主目录
  2. $ su root
  3. # 删除用户组
  4. $ userdel -r fcc

usermod:修改用户登录名

  1. # 修改登录名称
  2. $ usermod -1 Rose fcc

给普通用户设置sudo超级管理员权限

  1. # 编辑配置文件
  2. $ vim /etc/sudoers
  3. # 切换用户
  4. $ su fcant
  5. # 设置权限
  6. $ sudo useradd -m 用户名
  7. # 查看
  8. $ cd /home

2、组管理

groupadd:添加组

  1. # 添加组
  2. $ groupadd [组名]
  3. # 查看组
  4. $ cat /etc/group

gpaddwd:将用户从组中删除

  1. # 用户从指定组中删除
  2. $ gpasswd -d 用户 组名
  3. # 查看
  4. $ ll
  5. # 查看配置文件
  6. $ cat /etc/group

groupmod:修改组名

  1. # 修改组名
  2. $ groupmod -n 新组名 组名

groupdel:删除组

  1. # 删除组
  2. $ groupdel 组名
  3. # 查看
  4. $ cat /etc/group

用户添加指定组

  1. # 添加组
  2. $ groupadd [组名]
  3. # 查看组
  4. $ cat /etc/group

3、用户组信息在Linux中的文件管理

Linux角色分类

超级用户:root (user id —UID) 0 最高的管理权限。
普通用户:

  1. 系统用户 UID:1-999(rhel7 centos7) 1-499(rhel6)
  2. 本地用户 UID:1000+(rhel7 centos7) 500+(rhel6)

UID:用户身份标示,唯一标示。

Linux组分类

组:
组分类:
根据账号的功能分类:

  • 超级用户组:root GID:0
  • 普通用户组 :
    • 系统用户组: GID 1—-999
    • 本地用户组: GID 1000+

      Linux用户和组的关系

      一个用户属于一个组,也可以属于多个组,多个用户可以在一个组,可以在多个组。

      Linux用户和组的相关配置文件

  1. /etc/passwd:用户 and 属性信息。
  2. /etc/group: 组 and 属性信息。
  3. /etc/shadow: 用户密码 and 属性信息。
  4. /etc/gshadow:组密码 and 属性信息。
  5. /etc/default/useradd:设置添加用户规则文件。
  6. /etc/login.defs:设置用户账号限制。

    Linux用户信息文件

    用户管理中最重要的一个文件,这个文件是对所有用户开放的,每一行存一个用户的信息,每个属性之间用冒号分割。

    cat /etc/passwd
    root:x:0:0:root:/root:/bin/zsh
    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
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    

    举例: root:x:0:0:root:/root:/bin/zsh

  7. 登陆用户名:root

  8. 用户密码占位符:x
  9. 用户UID:0
  10. 用户组GID:0
  11. 对用户账户的描述:root
  12. 用户家目录位置:/root
  13. 用户默认的shell:/bin/zsh (默认是/bin/bash)

    Linux密码信息文件

    该文件只有root用户有读权限,每一行存一个用户的记录,每个属性用冒号分割。

    ➜  / cat /etc/shadow
    root:$6$Jgse2L6L$Az/O00:18095:0:99999:7:::
    bin:*:17110:0:99999:7:::
    daemon:*:17110:0:99999:7:::
    adm:*:17110:0:99999:7:::
    lp:*:17110:0:99999:7:::
    sync:*:17110:0:99999:7:::
    shutdown:*:17110:0:99999:7:::
    halt:*:17110:0:99999:7:::
    mail:*:17110:0:99999:7:::
    operator:*:17110:0:99999:7:::
    games:*:17110:0:99999:7:::
    ftp:*:17110:0:99999:7:::
    nobody:*:17110:0:99999:7:::
    systemd-bus-proxy:!!:17396::::::
    systemd-network:!!:17396::::::
    dbus:!!:17396::::::
    polkitd:!!:17396::::::
    tss:!!:17396::::::
    sshd:!!:17396::::::
    postfix:!!:17396::::::
    chrony:!!:17396::::::
    ntp:!!:17396::::::
    nscd:!!:17396::::::
    tcpdump:!!:17396::::::
    dockerroot:!!:18095::::::
    mysql:!!:18413::::::
    

    image.png
    举例: bin:*:17110:0:99999:7:::

  14. 登录用户名: bin

  15. 加密的密码: * 号代表密码被锁定
  16. 最近更改密码的日期: 17110代表到1970-1-1密码不可改的天数
  17. 密码修改期限:99999 代表永远不用改,如果是其他数字则表示从1970-1-1内的多少天必须修改密码。
  18. 更改密码最大有效天数: 代表密码保持有效的最大天数。
  19. 密码过期警告:密码到正式失效前有多少天(-1,永远不提示)
  20. 密码过期后多少天禁用用户:可登陆,单不能操作。
  21. 用户被禁用日期:多少天后账号过期,不能登陆。
  22. 保留参数

    Linux组信息文件

    用户组的组信息存放在这,一行存一个组记录,属性用冒号分割。

    ➜  / cat /etc/group
    root:x:0:
    bin:x:1:
    daemon:x:2:
    sys:x:3:
    adm:x:4:
    tty:x:5:
    disk:x:6:
    lp:x:7:
    mem:x:8:
    kmem:x:9:
    wheel:x:10:
    cdrom:x:11:
    mail:x:12:postfix
    man:x:15:
    dialout:x:18:
    floppy:x:19:
    games:x:20:
    tape:x:30:
    video:x:39:
    ftp:x:50:
    lock:x:54:
    audio:x:63:
    nobody:x:99:
    users:x:100:
    utmp:x:22:
    utempter:x:35:
    input:x:999:
    systemd-journal:x:190:
    systemd-bus-proxy:x:998:
    systemd-network:x:192:
    dbus:x:81:
    polkitd:x:997:
    ssh_keys:x:996:
    dip:x:40:
    tss:x:59:
    sshd:x:74:
    postdrop:x:90:
    postfix:x:89:
    chrony:x:995:
    ntp:x:38:
    nscd:x:28:
    tcpdump:x:72:
    cgred:x:994:
    dockerroot:x:993:
    mysql:x:1000:
    

    image.png
    举例: root:x:0:

  23. 组名:root

  24. 组密码占位符: x
  25. 组GID: 0

    4、id—查看用户的 UID\GID 及所属的用户组等信息

    命令简介

    id 命令用于查看用户的 UID\GID 及所属的用户组等信息。
    需要注意的就是:UID在系统中是唯一的,也是用户的身份标识,但GID可以对应多个UID(简单理解就是一个用户可以加入多个用户组)。

    语法格式

    id [OPTIONS][用户名称]
    

    选项说明

    -g  #显示用户所属群组的ID
    -G   #显示用户所属附加群组的ID
    -n  #显示用户,所属群组或附加群组的名称
    -r  #显示实际ID
    -u  #显示用户ID
    -Z   #仅打印当前用户的安全上下文
    -help   #打印帮助信息
    -version      #打印版本信息
    

    应用举例

    [root@centos7 ~]# id
    uid=0(root) gid=0(root) groups=0(root)
    #root 的 UID = 0,GID = 0
    [root@centos7 ~]# id -a
    uid=0(root) gid=0(root) groups=0(root)
    [root@centos7 ~]# id -g
    0
    [root@centos7 ~]# id -G
    0
    [root@centos7 ~]# id mingongge
    uid=1000(mingongge) gid=1000(mingongge) groups=1000(mingongge)