一、用户组
- 每个用户都属于一个用户组,用户组就是具有相同特征的用户的集合体。一个用户组可以包含多个用户,拥有一个自己专属的用户组id,缩写位gid。Gid是一个32位的整数,Linux系统内核用其来标识用户组。
- 同属于一个用户组内的用户具有相同的地位,并可以共享一定的资源。一个用户只能有一个gid(基本组),但是可以归属于其他的附加群组。
- 由于每个文件必须有一个组所有者,因此有一个与每个用户相关的默认组。这个默认组成为新建文件的组所有者,被称作用户的主要组,又称为基本组。也就是说如果没有指定用户组,创建用户的时候系统会默认同时创建一个和这个用户名同名的组,这个组就是基本组。
- 除了主要组以外,用户也可以根据需要再隶属于其他组,这些组被称作次要组或附加组。用户是可以从附加组中被删除的。
- 一个用户可以属于多个附加组。但是一个用户只能有一个基本组。
二、用户组相关文件
1、/etc/group
Linux系统中,用户组的信息保存在配置文件/etc/group中,该文件是可读格式的文本,管理员可以利用文本编辑器来修改。而系统的大多数用户没有权限修改它,只能读取这个文件。
利用文本编辑器查看group文件:
$ gedit /etc/group
/etc/group文件对组的作用相当于/etc/passwd文件对用户的作用,把组名与组ID联系在一起,并且定义了哪些用户属于哪些组。
该文件是一个以行为单位的配置文件,每行字段用冒号隔开,格式如下:
group_name:group_password:group_id:group_members
其中,每个字段的含义:
2、/etc/shadow
/etc/shadow文件和用户账户文件/etc/passwd文件一样,为了保护用户组的加密密码,防止暴力破解,用户组文件也采用将组口令与组的其他信息分离的安全机制,即使用/etc/gshadow文件存储各个用户组的加密密码。查看这个文件需要root权限。
gshadow文件也是一个以行为单位的配置文件,每行含有被冒号隔开的字段,其格式如下:
group_name:group_password:group_id:group_members
其中,各字段的含义如表所示:
" ! "表示组没有设置密码,可以用命令给组设置密码
三、用户组管理命令
1、groupadd
- 功能描述:用指定的组名称来建立新的组账号。
- 格式:groupadd [选项] 组名
- 选项:
例:新建组
groupadd -g 123 group1 #新建一个id为123的组group1
tail -1 /etc/group #查看/etc/group文件最后一行新建组情况
2、groupmod
- 功能描述:groupmod命令用于更改群组属性。
- 格式:groupmod [选项] 组名
- 选项:
例:更改组的名字
groupmod -n group0 group1 #将group1群组的名称改为group0
3、groupdel
- 功能描述:从系统上删除组。
如果该组中仍包含某些用户,则必须先删除这些用户后,才能删除组。 - 格式:groupdel [选项] 组名
例:删除不含用户的组
groupdel group1 #删除group1组
例2:删除含用户的组
userdel user1 #删除用户user1
groupdel group1 #删除组group1
4、gpasswd
- 功能描述:用来管理组。
该命令可以把用户加入组(附加组),为组设定密码。 - 格式:gpasswd [选项] 组名
- 选项:
例1:添加用户入组
gpasswd -M user1,user2 group #为group组指定user1和user2组成员
grep group /etc/group #查看group组信息
只有管理员,才能拥有权限添加新用户到组。如不是,需先指定为管理员,见下例:
例2:建立组并指定管理员和添加用户
adduser test2 #新建用户test2,同时建立新组test2
passwd -A user1 group1 #指定用户user1为组group1的管理员
su user1 #切换当前用户为user1
gpasswd -a user2 group1 #在user1用户下为组group1添加用户user2
例3:删除组中用户
gpasswd -d user1 group1 #将组group1中的用户user1删除
id user1 #查看用户user1的所属组情况
ending~~~
有什么问题欢迎留言噢