Linux中有两种类型的组概念:主要组和次要组,创建新组很简单:
sudo groupadd gname
现在我想知道新创建的组gname
属于哪种类型的组?有没有办法在它们之间相互转换?
创建两个不包含用户的新组
sudo groupadd writers
sudo groupadd editers
添加新用户。
sudo useradd -m mywriter -p yourpassword
sudo useradd -m myediter -p yourpassword
将新用户添加到组中。
sudo usermod -a -G writers mywriter
sudo usermod -g editers myediter
现在我们有 4 组。
cat /etc/group | tail -4
writers:x:1007:mywriter
editers:x:1008:
mywriter:x:1009:
myediter:x:1010:
进入我的作家
$ touch /tmp/mywriter.txt
$ ls -al /tmp/mywriter.txt
-rw-r--r-- 1 mywriter mywriter 0 Aug 23 21:24 /tmp/mywriter.txt
进入我的编辑器
$ touch /tmp/myedier.txt
$ ls -al /tmp/myediter.txt
-rw-r--r-- 1 myediter editers 0 Aug 23 21:27 /tmp/myediter.txt
对于组 1----mywriter:
id mywriter
uid=1009(mywriter) gid=1009(mywriter) groups=1009(mywriter),1007(writers)
mywriter
自 uid=gid=1009 以来,它是一个主要组。
对于组2--myediter
id myediter
uid=1010(myediter) gid=1008(editers) groups=1008(editers)
是二级群体吗?
如何对群writers
和进行分类editers
?
答案1
群体本身没有主要或次要之分。群体就是群体。
重要的是如何使用它们。
让我们来看一个典型的登录会话。 (为了便于解释,我将简化这一点,但相同的逻辑适用于更复杂的情况)。
当登录过程设置您的组成员资格时,它所做的第一件事就是查看文件passwd
。
对于我来说,在我的机器上:
sweh:x:500:500:Stephen Harris:/home/sweh:/bin/ksh
第二个数字决定了基本的团体。所以我的主要组是组 ID 500。
接下来,它会查看组文件,看看哪些条目列出了我的用户名:
% grep -w sweh /etc/group
wheel:x:10:sweh
sweh:x:500:
apache:x:48:sweh
news:x:13:news,sweh
所以我们可以看到我已被列入第 10、48 和 13 组。这些是中学组。
我们可以使用以下命令看到这一点id
:
% id
uid=500(sweh) gid=500(sweh) groups=500(sweh),10(wheel),13(news),48(apache)
该gid
值列出了主要组。值groups
列表全部我所在的组。所有不是主要的都是次要的。
不同的登录可能有不同的主要组和次要组,具体取决于它们在passwd
和中的条目group
。
所以我们可以看到“主要”和“次要”是基于上下文的用户以及如何定义该用户。它不是基于团体本身。
答案2
它是: 是否是基本的或者中学组完全取决于你如何将它附加到给定的用户 ID。有些系统有一个usermod
例如,程序有一个选项可以将该组指定为辅助组。