系统中用户组的信息记录在etc/group中,以:为分隔符,第一列为用户组的组名称,第二列为用户组密码,这个设置是给用户组管理员使用的,但是密码被记录在etc/shadow中,因此在etc/group中密码列只会显示为x,第三列为GID,即用户组ID,第四列为该用户组中成员。

 

       初始用户组:用户登陆系统时就立刻拥有该用户组的相关权限,etc/passwd中用户信息的第四列记录的GID所对应的用户组就是该用户的初始用户组。

 

[xxx@localhost ~]$ tail -n 1 /etc/group
xxx:x:502:
[xxx@localhost ~]$ tail -n 1 /etc/passwd
xxx:x:502:502::/home/xxx:/bin/bash

 

       例如当一个用户xx被添加到whx和xxx两个用户组中,那么在读取/写入/执行已存在的文件时,针对用户组部分,xxx这个账号就能拥有whx和xxx这两个用户组所拥有的功能。但是当xxx这个用户新建文件或目录时,xxx新建文件或目录只能属于xxx的有效用户组,而不是xxx的初始用户组。

 

使用groups命令可以查看当前用户所支持的所有用户组,排在第一的用户组就该用户的有效用户组。

使用newgrp命令可以更改用户的有效用户组,(只能更换为该用户所支持的用户组)。

 

[xxx@localhost ~]$ groups
xxx whx
[xxx@localhost ~]$ touch test
[xxx@localhost ~]$ ll
total 0
-rw-rw-r--. 1 xxx xxx 0 Oct  9 01:27 test
 [xxx@localhost~]$ newgrp whx
[xxx@localhost ~]$ groups
whx xxx
[xxx@localhost ~]$ touch test1
[xxx@localhost ~]$ ll
total 0
-rw-rw-r--. 1 xxx xxx 0 Oct  9 01:27 test
-rw-r--r--. 1 xxx whx0 Oct  9 01:27 test1