• Linux CentOS 8(用户组的管理实验)



    Linux CentOS 8(用户组的管理实验)



    一、项目介绍

    本节将介绍Linux(Centos8)中用户组的创建、修改和删除。

    二、相关概念

    2.1 用户组

    每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

    2.2 用户组的管理

    用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

    2.3 主组和附属组

    从用户的角度,分为主组和附属组。
    主组:又称私有组,也被称为primary group、first group或initial login group,用户的默认组,用户的GID(Group ID,简称 GID)所标识的组。一个用户必须属于且只能属于一个私有组,但一个私有组可以包含多个用户。新建用户时,若没有特殊指定,Linux会自动创建一个与该用户同名的组作为其私有组,且这个私有组不可删除。
    附属组:也被称为Secondary group或supplementary group,用户的附加组。一般用于多用户管理,用户可以属于一个或多个标准组,也可以不属于任何标准组。同样,标准组中可以有用户,也可以没有用户,且可删除。

    2.4 相关文件

    /etc/group 文件把组ID映射到组名称和组成员身上
    /etc/group 文件存储格式(组名称:组密码:组ID:组成员)

    root:x:0:root
    
    • 1

    字段解释:

    • 组名称:每个组都有一个组名称
    • 组密码:可以给组提供一个密码,一般很少这么做
    • 组ID:像用户ID一样,linux内核使用ID来识别
    • 组成员:定义组成员用户名列表,用半角逗号隔开

    三、任务操作

    任务1- 创建用户组

    1)查看“groupadd”的选项

    [root@localhost~]#  groupadd -h   //使用选项“-h”进行查看
    Usage: groupadd [options] GROUP
    Options:
      -f, --force                   exit successfully if the group already exists,
                                and cancel -g if the GID is already used
      -g, --gid GID                use GID for the new group
      -h, --help                   display this help message and exit
      -K, --key KEY=VALUE          override /etc/login.defs defaults
      -o, --non-unique             allow to create groups with duplicate
                                (non-unique) GID
      -p, --password PASSWORD     use this encrypted password for the new group
      -r, --system                 create a system account
      -R, --root CHROOT_DIR        directory to chroot into
      -P, --prefix PREFIX_DIR        directory prefix
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    groupadd
    1、groupadd 命令用于创建一个新的工作组,新工作组的信息将被添加到系统文件中。
    相关文件:
    /etc/group 组账户信息。
    /etc/gshadow 安全组账户信息。
    /etc/login.defs Shadow密码套件配置。
    2、警告:
    组名最长32个字符。
    不能添加NISsan或LDAP组,这必须在相应的服务器上执行。
    如果组名已经存在与外部组数据库(如NIS或LDAP)中,groupadd 将拒绝组创建请求。groupadd 命令常用选项,如表1所示。

    表1 groupadd 命令常用选项的用法
    选项说明
    -g指定新建工作组的id
    -r创建系统工作组,系统工作组的组ID小于500
    -K覆盖配置文件“/ect/login.defs”
    -o允许添加组ID号不唯一的工作组

    2)使用 命令“id”,不加任何参数时,该 命令报告用户的用户ID、主要组和主要组ID、用户所属的所有组的组名称和组ID

    [root@localhost ~]# id
    uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
    
    • 1
    • 2

    3)使用“whoami”或者“id -un”,可以显示当前用户的用户名

    [root@localhost ~]# whoami
    root
    [root@localhost ~]# id -un
    root
    
    • 1
    • 2
    • 3
    • 4

    4)使用 命令“users”或“w”或“who”,查看当前都有谁登录了系统

    [root@localhost ~]# users  //简单地打印当前已登录用户列表
    root root root
    [root@localhost ~]# w     //列出当前已登录用户,提供最详细的信息
     22:45:05 up 15:09,  3 users,  load average: 0.00, 0.03, 0.10
    USER    TTY      FROM          LOGIN@   IDLE   JCPU   PCPU WHAT
    root     tty1     -                Sun14   30:26m  0.77s  0.77s -bash
    root     tty4     -                Sun16   20:00m  3.09s  3.09s -bash
    root     pts/0    192.168.1.1      21:00    1.00s  0.10s  0.06s w
    [root@localhost ~]# who  //列出当前登录用户的详细信息
    root     tty1         2021-06-06 14:44
    root     tty4         2021-06-06 16:28
    root     pts/0        2021-06-07 21:00 (192.168.1.1)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    5)创建群组“tests”,并检验

    [root@localhost ~]# groupadd tests
    [root@localhost ~]# tail -5  /etc/group
    jan15:x:2225:
    jan14ll:x:2226:
    user01:x:2227:
    userss:x:2666:
    tests:x:2667:
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    6)创建群组“tests1”,并设置该群组GID为2888,并检验

    [root@localhost ~]# groupadd -g 2888 tests1
    [root@localhost ~]# tail -5 /etc/group
    jan14ll:x:2226:
    user01:x:2227:
    userss:x:2666:
    tests:x:2667:
    tests1:x:2888:
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    7)创建系统群组“tests2”,并检验

    [root@localhost ~]# groupadd -r tests2
    [root@localhost ~]# tail -5 /etc/group
    user01:x:2227:
    userss:x:2666:
    tests:x:2667:
    tests1:x:2888:
    tests2:x:991:
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    任务2- 修改用户组

    1)查看“groupmod”的选项

    [root@localhost ~]# groupmod -h
    Usage: groupmod [options] GROUP
    Options:
      -g, --gid GID                 change the group ID to GID
      -h, --help                    display this help message and exit
      -n, --new-name NEW_GROUP      change the name to NEW_GROUP
      -o, --non-unique              allow to use a duplicate (non-unique) GID
      -p, --password PASSWORD       change the password to this (encrypted)
                                    PASSWORD
      -R, --root CHROOT_DIR         directory to chroot into
      -P, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    groupmod 命令常用选项,如表2所示。

    表2 groupmod 命令常用选项的用法
    选项说明
    -g设置欲使用的群组识别码
    -o重复使用群组识别码
    -n设置欲使用的群组名称

    注:
    groupmod 命令用于更改群组的识别码或名称时。不过还是要注意,用户名不要随意修改,组名和 GID 也不要随意修改,因为非常容易导致管理员逻辑混乱。如果非要修改用户名或组名,则建议先删除旧的,再建立新的。

    2)将组名为“tests1”修改为“group1”,并验证

    [root@localhost ~]# groupmod -n group1 tests1
    [root@localhost ~]# tail -1 /etc/group
    group1:x:2888:                   //注意GID还是2888,但是组名已经改变
    
    • 1
    • 2
    • 3

    3)将“group1”的GID修改为“2999”,并验证

    [root@localhost ~]# tail -1 /etc/group
    group1:x:2888:
    [root@localhost ~]# groupmod -g 2999 group1
    [root@localhost ~]# tail -1 /etc/group
    group1:x:2999:
    
    • 1
    • 2
    • 3
    • 4
    • 5

    注:修改GID,如果没有加-o选项,GID一定不能与某一个现存组的ID号相同。

    4)将“test02”的GID修改为与group1一样的“2999”,并验证

    [root@localhost ~]# tail -2 /etc/group
    tests2:x:991:
    group1:x:2999:
    [root@localhost ~]# groupmod -o -g 2999 tests2
    [root@localhost ~]# tail -2 /etc/group
    tests2:x:2999:
    group1:x:2999:
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    任务3- 删除用户组

    1)查看“groupdel”的选项

    [root@localhost ~]# groupdel -h
    Usage: groupdel [options] GROUP
    Options:
      -h, --help                  display this help message and exit
      -R, --root CHROOT_DIR       directory to chroot into
      -P, --prefix PREFIX_DIR     prefix directory where are located the /etc/* files
      -f, --force              delete group even if it is the primary group of a user
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    groupdel 命令常用选项,如表3所示。

    表3 groupdel 命令常用选项的用法
    选项说明
    -h显示帮助信息
    -R在chroot_dir目录中应用更改并使用chroot_dir目录中的配置文件
    groupdel命令用于删除指定的工作组,本 命令要修改的系统文件包括/ect/group和/ect/gshadow。groupdel 命令在删除用户组的时候,要求其用户组下没有归属的用户才能删除,否则不能删除用户组。

    2)将用户组“tests2”删除,并验证

    [root@localhost ~]# tail  -3  /etc/group
    tests:x:2667:
    tests2:x:2999:
    group1:x:2999:
    [root@localhost ~]# groupdel tests2
    [root@localhost ~]# tail -3 /etc/group
    userss:x:2666:
    tests:x:2667:
    group1:x:2999:
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    3)将用户“user01”所属的用户组“tests”删除,并验证

    [root@localhost ~]# usermod -g tests user01
    [root@localhost ~]# groupdel tests
    groupdel: cannot remove the primary group of user 'user01'
    [root@localhost ~]# usermod -g 2999 user01
    [root@localhost ~]# groupdel tests
    
    • 1
    • 2
    • 3
    • 4
    • 5

    groupdel 命令在删除用户组的时候,要求其用户组下没有归属的用户才能删除,否则不能删除用户组,因此,我们将“tests”的用户“user01”转移到GID为“2999”的用户组中,才可以将用户组“tests”删除。


    制作成员: 杨佳佳
    排版: 裕新
    初审: 何嘉愉
    复审: 二月二
    在这里插入图片描述


    点击下方“正月十六工作室”查看更多学习资源

    正月十六工作室

  • 相关阅读:
    深入Mybatis框架
    Redis基础架构
    SpringMVC(3)——REST风格
    详细剖析pyecharts大屏的Page函数配置文件:chart_config.json
    笔试强训未触及题目(个人向)
    00-linux pwn环境搭建
    小黑宿舍楼边又有阳性了,纠结回不回家,不戴口罩又挨老黑说了的leetcode之旅:530. 二叉搜索树的最小绝对差
    Java最全面试攻略,吃透25个技术栈Offer拿到手软
    二叉树中序遍历--递归和迭代,妙啊
    VS2019下生成dll动态库及其引入实验
  • 原文地址:https://blog.csdn.net/hjx020/article/details/124923322