/etc/group文件内容包括用户和用户组,并且能显示出用户是归属哪个用户组或哪几个用户组,因为一个用户可以归属一个或多个不同的用户组;同一用户组的用户之间具有相似的特征。比如我们把某一用户加入到root用户组,那么这个用户就可以浏览root用户家目录的文件,如果root用户把某个文件的读写执行权限开放,root用户组的所有用户都可以修改此文件,如果是可执行的文件(比如脚本),root用户组的用户也是可以执行的;用户组的特性在系统管理中为系统管理员提供了极大的方便,但安全性也是值得关注的,如某个用户下有对系统管理有最重要的内容,最好让用户拥有独立的用户组,或者是把用户下的文件的权限设置为完全私有;另外root用户组一般不要轻易把普通用户加入进去.
/etc/group文件中每个用户组为一条记录,每条记录分四个字段,格式如下:
group_name:passwd:GID:user_list
它们分别为用户组名称、用户组密码、GID和用户列表,用户列表中每个用户之间用逗号分割,用户列表字段可以为空,如果字段为空表示用户组为GID的用户名,下面举例说明:
root:x:0:root,linuxsir//用户组root,x是密码段,表示没有设置密码,GID是0,root用户组下包括root、linuxsir以及GID为0的其它用户(可以通过/etc/passwd查看)
beinan:x:500:linuxsir//用户组beinan,x是密码段,表示没有设置密码,GID是500,beinan用户组下包括linuxsir用户及GID为500的用户
linuxsir:x:502:linuxsir//用户组linuxsir,x是密码段,表示没有设置密码,GID是502,linuxsir用户组下包用户linuxsir及GID为502的用户
helloer:x:503://用户组helloer,x是密码段,表示没有设置密码,GID是503,helloer用户组下包括GID为503的用户
GID和UID类似,是一个正整数或0,GID从0开始,GID为0的组让系统付予给root用户组。系统会预留一些较靠前的GID给系统虚拟用户(也被称为伪装用户)之用。每个系统预留的GID都有所不同,比如Fedora预留了500个,我们添加新用户组时,用户组是从500开始的,而Slackware是把前100个GID预留,新添加的用户组是从100开始。查看系统添加用户组默认的GID范围应该查看/etc/login.defs 中的 GID_MIN 和GID_MAX 值,我们可以对照/etc/passwd和/etc/group两个文件,我们会发现有默认用户组之说,我们在/etc/passwd中的每条用户记录会发现用户默认的GID,在/etc/group中,我们也会发现每个用户组下有多少个用户。在创建目录和文件时,会使用默认的用户组,我们还是举个例子,比如我把linuxsir加为root用户组,在/etc/passwd 和/etc/group 中的记录相关记录为:
linuxsir:x:505:502:linuxsir open,linuxsiroffice,13898667715:/home/linuxsir:/bin/bash
linuxsir用户在 /etc/passwd中的记录,我们在这条记录中看到,linuxsir用户默认的GID为502,而502的GID在/etc/group中查到是linuxsir用户组。
root:x:0:root,linuxsir
beinan:x:500:linuxsir
linuxsir:x:502:linuxsir
linuxsir用户在/etc/group中的相关记录,在这里,我们看到linuxsir用户组的GID 为502,而linuxsir用户归属为root、beinan用户组。
我们用linuxsir 来创建一个目录,以观察linuxsir用户创建目录的权限归属;
# mkdir testdir
# ls -lh

总用量 4.0K
drwxrwxr-x 2 linuxsir linuxsir 4.0K 10月 17 11:42testdir
通过我们用linuxsir来创建目录时发现,testdir的权限归属仍然是linuxsir用户和linuxsir用户组的;而没有归属root和beinan用户组,明白了吧;但值得注意的是,判断用户的访问权限时,默认的GID并不是最重要的,只要一个目录让同组用户可以访问的权限,那么同组用户就可以拥有该目录的访问权,在这时用户的默认GID 并不是最重要的。