【Linux】Linux私有组,主要组和附加组

私有组概念

任何用户都必须依赖一个用户组才能存在,所以如果我们在创建用户的时候没有指定用户组,那么系统会为该用户创建一个同名的组。 这个组叫做私有组。

私有组: private group

私有组里默认只有一个和该私有组同名的用户。

[root@zmedu-17 ~]# useradd gaosh4
[root@zmedu-17 ~]# id gaosh4
uid=1004(gaosh4) gid=1004(gaosh4)=1004(gaosh4)

可以看到在我创建gaosh4的时候会默认创建了一个组gaosh4

[root@zmedu-17 ~]# grep 1004 /etc/group
gaosh4:x:1004: 

那我如果在创建一个用户的时候指定了一个组,还会有私有组吗?

答案是: 不会有

[root@zmedu-17 ~]# groupadd zmedu -g 3000
[root@zmedu-17 ~]# useradd gaosh5 -g zmedu
[root@zmedu-17 ~]# id gaosh5
uid=1005(gaosh5) gid=3000(zmedu)=3000(zmedu)
[root@zmedu-17 ~]# grep gaosh5 /etc/group
[root@zmedu-17 ~]# 

可以看到,当我创建一个用户gaosh5,属于zmedu组的时候,他就只有zmedu组,搜gaosh5这个私有组的时候发现不存在,也就是它并没有创建私有组。

主要组概念

在/etc/passwd的第四列GID表示该用户的主要组(primary group),一个 用户可以属于多个组,记录在/etc/passwd 的那个组叫主要组。

[root@zmedu-17 ~]# grep gaosh4 /etc/passwd
gaosh4:x:1004:1004::/home/gaosh4:/bin/bash
[root@zmedu-17 ~]# 

一个用户的主要组,可以是私有组。

但是当你在创建用户的时候,指定了用户组,哪怕指定的用户组和用户名相同,也不算私有组。只有系统给创建的才叫私有组

附加组概念

一个用户只可以属于一个私有组,但是可以同时属于多个附加组(attached group)

比如一个前台,可能同时也兼着财务和销售。

所以这个前台有个主要组是前台。 财务和销售是他的附件组。

[root@zmedu-17 ~]# groupadd cwu
[root@zmedu-17 ~]# groupadd xshou
[root@zmedu-17 ~]# useradd qtai -G cwu

useradd -g 是创建私有组

[root@zmedu-17 ~]# grep qtai /etc/passwd
qtai❌1006:1006::/home/qtai:/bin/bash
[root@zmedu-17 ~]# grep 1006 /etc/group
qtai❌1006:

有私有组的时候,不会在/etc/passwd里和组里出现附加值。但是从操作上我们也可以执行

[root@zmedu-17 ~]# id qtai
uid=1006(qtai) gid=1006(qtai)=1006(qtai),3001(cwu)

总结

私有组: 存在的意义在于你没有指定用户组的时候,系统自动添加一个同名的组,叫私有组

附加组:在现有组的前提下,在添加一个从属组

主要组: 在/etc/passwd的第四列GID表示该用户的主要组

一个组可以是私有组也可以是主要组,但无法根据/etc/passwd去判断一个组是否是私有组。

猜你喜欢

转载自blog.csdn.net/xinshuzhan/article/details/107767203