七、增删群组相关的命令

        相同的我们要先介绍两个重要的设定档:/etc/group和/etc/gshadow,前面那个事实上和/etc/passwd一样。而后者就是群组的password表了。先看看长啥样:

root:x:0:

adm:x:4:m,syslog

m:x:1000:

        这是截取的/etc/group的一部分,每行被冒号分成四段,第一段是群组名。第二段是password; 第三段是gid;第四段就是该组以下的成员了。

        我们看到root和m群组第四段是空的,而adm群组的第四段有两个成员。为什么会有这样的差别呢?原来每一个用户增加的群组分为主要群组和次要群组,主要群组是指用户账户刚建立的时候绑定的那个群组,仅仅要看一下/etc/passwd里面的第四段就能够知道该用户的主要群组是哪个,来看用户m的信息 m:x:1000:1000:m,,,:/home/m:/bin/bash  显然用户m的主要群组是m。那么每一个账户的名字是不会出如今/etc/group中主要群组的第四段的,由于在某种程度上这是不言而喻或默认的;若某个用户出如今第四段了。那意味着该群组不是其主要群组。

        另一个概念叫有效群组,尽管一个用户能够增加多个群组并拥有对应权限,但这是针对已经存在的档案或文件夹而言。若果某用户要新建一个文件或文件夹,那它属于该用户的哪个群组呢?答案是有效群组,即此时该用户所在的那个组。

我们知道某一时刻,一个用户仅仅能在一个组内活动,即使他拥有其它群组的权限。打个例如,一个领导管理三个部门即拥有三个群组的权限,可是每一个时刻他仅仅能坐在某一个特定部门的办公室,却不能分身同一时候坐在三个办公室,即使他拥有另外两个办公室的进入权。

        用groups命令能够查看当前用户所属的全部群组,当中第一个就是该用户的有效群组。

用newgrp命令能够切换有效群组。类似领导要去还有一个办公室。

然后又是默认情况,即某用户一登陆linux时。有效群组是哪个呢?类似于每天领导第一个去的办公室是哪个?答案是上面的主要群组,在这里它被称为初始群组。但不管哪个名字,说的都是/etc/passwd的第四段那个群组。


root:*::
daemon:*::

m:!::

这是截取的/etc/gshadow的一部分。每行也是被冒号分成四段,各自是群组名、password、群组管理员、成员。

password段若是!或*,则表示改组无法登入,即无法用newgrp切换。


添加群组命令

groupadd -g/r groupname   -g后面跟gid,加上-r 表示建立的是系统群组,即/etc/gshadow的第二栏会变成星号或叹号。

改动群组命令 :groupmod  类似与usermod。即——groupmod [-g gid] [-n group_name]

删除群组命令:groupdel  groupname 。可是这个命令有些要注意的地方,由于某些情况下会失败,原因是还实用户的初始群组是该群组。所以要先解除这样的绑定,即改动该用户在/etc/passwd的gid或直接删除该用户。


八、其它命令

        1)除了上面的groups能够查看群组的信息外,另一个id命令。能够查看很多其它信息,直接在终端输入id就好,不必加參数。

        2)passwd命令        passwd [-lunxwS] username

-l :将 username 这个账号的password锁住 (lock),在 /etc/shadow 内的password栏修订~
-u :将 -l 的 lock 解开!
-n :后面接天数 (数字) ,最短天数;亦即是 /etc/shadow 内的第四栏;
-x :后面接天数 (数字) ,最长天数;亦即是 /etc/shadow 内的第五栏;
-w :后面接天数 (数字) ,警告天数;亦即是 /etc/shadow 内的第六栏;
-S :显示眼下这个 username 的相关信息。