Linux /etc/group 文件

/etc/group 为支持某些系统范围任务(例如打印、网络管理或者电子邮件)的系统组定义默认系统组条目。
其中许多组在 /etc/passwd 文件中都有相应的条目。
由于大多数linux系统使用UPG方案,当添加新用户时,会自动在/etc/group中创建一个新条目。
组名与用户名相同。

之路教程 https://onitr oad .com

groups命令

groups 命令显示用户所属的组。
下面的例子说明用户oracle属于两个组,oracle(主要组)和students(次要组):

# grep oracle /etc/passwd
oracle:x:1000:1000:Oracle DBA:/home/oracle/bin/bash
# grep oracle /etc/group
oracle:x:1000: students:x:1056:student1,student2,oracle

groups 命令(以 oracle 身份登录)验证这些组成员身份。

$ whoami
oracle
$ groups 
oracle students

/etc/group 文件条目解释

下图提供了默认 /etc/group 文件条目的示例。
/etc/group 文件中的每个条目都包含四个字段。
冒号分隔每个字段。
以下是条目的格式:

groupname:group-password:GID:username-list

/etc/group 文件中的每个条目包含四个字段: 每个字段的描述和要求如下:

字段作用
groupname包含分配给组的名称。
group-password (x)此字段中的 x 表示使用影子密码。
GID包含组的 GID 号。
username-list作为组成员的用户列表

每个组可以有多个用户。
用户也可以属于多个组。
存储在 /etc/passwd 中用户条目中的 GID 是用户的主要组。

集团账户管理

  1. 使用 groupadd 命令添加群组帐号:
# groupadd [options] group_name

示例:将用户 (tom) 添加到组 (students):

# gpasswd -a tom students
  1. 使用 groupmod 命令修改组帐号:
# groupmod [options] group_name
  1. 使用 gpasswd 命令管理组帐户:
# gpasswd [options] group_name
  1. 使用 groupdel 命令删除组帐户。
    语法是:
# groupdel group_name

即使组中有成员,我们也可以删除组。
我们不能删除任何现有用户的主要组。
我们必须先删除用户,然后才能删除组。

  1. 使用 gpasswd 命令管理 /etc/group 和 /etc/gshadow。
    每个组都可以有管理员、成员和密码。
    语法是:
# gpasswd [options] group_name

newgrp 命令

newgrp 命令执行一个新的 shell 并更改用户的真实组标识。
以下示例说明了运行命令之前和之后的组 ID。
它还说明了一个新的 shell 被执行。

$ id
uid=1000(oracle) gid=1000(oracle)
groups=1000(oracle),1066(students)...

请注意,gid 等于 1000(oracle)。

$ ps
PID TTY TIME CMD
20279 pts/0 00:00:00 bash 20411 pts/0 00:00:00 ps
$ newgrp students
$ id
uid=1000(oracle) gid=1066(students)
groups=1000(oracle),1066(students)...

请注意,gid 现在等于 1066(学生)。
另请注意,执行了一个新的 shell:

$ ps
PID TTY TIME CMD
20279 pts/0 00:00:00 bash
20464 pts/0 00:00:00 bash
20486 pts/0 00:00:00 ps

注意:newgrp 命令无法识别组 ID 号,我们只能将真实的组名更改为我们所属的组。
运行不带参数的命令会将实际组标识设置为用户的主要组。

日期:2020-09-17 00:14:58 来源:oir作者:oir