Linux CentOS 8(用户组的管理实验)
本节将介绍Linux(Centos8)中用户组的创建、修改和删除。
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
从用户的角度,分为主组和附属组。
主组:又称私有组,也被称为primary group、first group或initial login group,用户的默认组,用户的GID(Group ID,简称 GID)所标识的组。一个用户必须属于且只能属于一个私有组,但一个私有组可以包含多个用户。新建用户时,若没有特殊指定,Linux会自动创建一个与该用户同名的组作为其私有组,且这个私有组不可删除。
附属组:也被称为Secondary group或supplementary group,用户的附加组。一般用于多用户管理,用户可以属于一个或多个标准组,也可以不属于任何标准组。同样,标准组中可以有用户,也可以没有用户,且可删除。
/etc/group
文件把组ID映射到组名称和组成员身上
/etc/group
文件存储格式(组名称:组密码:组ID:组成员)
root:x:0:root
字段解释:
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
groupadd
1、groupadd
命令用于创建一个新的工作组,新工作组的信息将被添加到系统文件中。
相关文件:
/etc/group
组账户信息。
/etc/gshadow
安全组账户信息。
/etc/login.defs Shadow密码套件配置。
2、警告:
组名最长32个字符。
不能添加NISsan或LDAP组,这必须在相应的服务器上执行。
如果组名已经存在与外部组数据库(如NIS或LDAP)中,groupadd 将拒绝组创建请求。groupadd
命令常用选项,如表1所示。
选项 | 说明 |
---|---|
-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
3)使用“whoami”或者“id -un”,可以显示当前用户的用户名
[root@localhost ~]# whoami
root
[root@localhost ~]# id -un
root
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)
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:
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:
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)查看“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
groupmod 命令常用选项,如表2所示。
选项 | 说明 |
---|---|
-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,但是组名已经改变
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:
注:修改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)查看“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
groupdel
命令常用选项,如表3所示。
选项 | 说明 |
---|---|
-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:
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
groupdel
命令在删除用户组的时候,要求其用户组下没有归属的用户才能删除,否则不能删除用户组,因此,我们将“tests”的用户“user01”转移到GID为“2999”的用户组中,才可以将用户组“tests”删除。
制作成员: 杨佳佳
排版: 裕新
初审: 何嘉愉
复审: 二月二
点击下方“正月十六工作室”查看更多学习资源