了解 Linux 中的 /etc/group 文件


        /etc/group 是一个文本文件,用于定义用户在 Linux 和 UNIX 操作系统下所属的组。在 Unix / Linux 下,可以将多个用户分类为组。Unix 文件系统权限分为三个类:用户、组和其他。使用组允许以有组织的方式委派其他功能,例如访问磁盘、打印机和其他外围设备。除其他外,此方法还使超级用户能够将某些管理任务委派给普通用户。
教程详细信息
难度级别 容易
需要Root 权限 是的
要求 Linux 或 Unix 终端
类别 用户管理
操作系统兼容性 AIX  AlmaLinux  Alpine  Amazon Linux  Arch  BSD  CentOS  Debian  Fedora  FreeBSD  HP-UX  Linux  macOS  Mint  NetBSD  OpenBSD  openSUSE  Pop!_OS  RHEL  Rocky  Stream  SUSE  Ubuntu  Unix  WSL
预计阅读时间 4 分钟

二、了解 /etc/group 文件

        它存储组信息或定义用户组,即定义用户所属的组。每行有一个条目,每行具有以下格式(所有字段都用冒号 (:)

图 01: /etc/group 文件中的示例条目

图 01: /etc/group 文件中的示例条目

这里项目解释

  1. group_name:是组的名称。如果运行 ls -l 命令,您将在 group 字段中看到此名称。
  2. 密码:通常不使用密码,因此它是空的/空白的。它可以存储加密的密码。这对于实施特权组非常有用。
  3. 群组 ID (GID):必须为每个用户分配一个群组 ID。您可以在 /etc/passwd 文件中看到此数字。
  4. 组列表:组成员的用户名列表。用户名必须用逗号分隔。

三、有关用户组的更多信息

Linux 和 UNIX 系统上的用户被分配到一个或多个组,原因如下:

  • 与少量用户共享文件或其他资源
  • 易于用户管理
  • 易于用户监控
  • 组成员资格是大型 Linux (UNIX) 安装的完美解决方案。
  • 组成员身份为您或您的用户提供了对允许该组访问的文件、目录或设备的特殊访问权限


(图 01:理解组)

用户 tom 是“Web 开发人员”和“销售”组的成员。所以 tom 可以访问的文件属于两个组。

3.1 任务:查看当前组设置

键入以下任一命令:

less /etc/group

或:

more /etc/group

或:
more /etc/group

3.2 任务:找出用户所在的组

键入以下 groups 命令

示例输出:

groups {username}
groups
groups vivek

输出:
vivek : vivek adm dialout cdrom plugdev lpadmin netdev admin sambashare libvirtd

3.3 任务:打印用户/组身份

使用 id 命令显示有关给定用户的信息。

3.3.1 仅显示组 ID,

输入:

使用 id 命令

ORid -g
id -g user
id -g vivek

id -gn vivek

3.3.2 仅显示组 ID 和补充组 

输入

id -G
id -G user
id -G vivek


id -Gn vivek

四、如何使用oupadd 命令在 Linux 中创建新组?

要创建名为 sales 的新组,请运行:

想要创建名为 sysftp 的新系统组吗?

以下是创建一个名为 'blogusers' 的新组的方法,其特定 GID(组 ID)为 3000:sudo groupadd salessudo groupadd --system sysftp
sudo groupadd --gid 3000 blogusers

五、如何从 Linux 系统中删除已有的用户组?

尝试 groupdel 命令或 groupmod 命令。例如,删除一个名为 'vftpusers' 的现有组:
sudo groupdel vftpusers

六、修改 Linux 系统中的现有用户组

你需要使用 groupmod 命令。让我们看看一些常见的例子:

6.1 在 Linux 中更改组 ID

请尝试以下示例:
sudo groupmod --gid <new_id> <group_name>

6.2 更改组名称

语法为:
sudo groupmod --new-name <new_group_name_here> <old_group_name_here>

七、关于 gpasswd 命令的说明

        请注意,可以使用 gpasswd 命令来管理 /etc/group 和 /etc/gshadow 文件。每个组都可以有管理员、成员和密码。下面是一个简单的示例:
        设置组管理员(比如名为 ftpadmin 的组,带有 tom 和 jerry 成员)

接下来,设置组成员列表:

现在,为命名组 'ftpadmin' 创建一个密码:

你可以将用户添加到命名组 'ftpadmin':

想要从命名组 'ftpadmin' 中移动一个用户:

sudo gpasswd -A tom,jerry ftpadmin

sudo gpasswd -M vivek,raj ftpadmin

sudo gpasswd ftpadmin

sudo gpasswd -a <user_name_here> ftpadmin
sudo gpasswd -d <user_name_here> ftpadmin

八、/etc/groups 相关 Linux 命令

请参阅以下与 Linux 中的 /etc/groups 文件相关的命令

  • chgrp command (chgrp 命令) – 更改文件和目录的组所有权。
  • groupadd 命令 – 将用户组添加到系统。
  • gpasswd 命令 – 管理 /etc/group 和 /etc/gshadow 文件。
  • groups 命令 – 请参阅用户的组成员资格。
  • login command (登录命令) – 登录程序用于与系统建立新会话。
  • groupdel 命令 – 从系统中删除现有用户组。
  • newgrp 命令 – 切换主组成员资格。
  • sg command – 以不同的组 ID 运行命令。
  • groupmod command – 修改系统中的现有用户组。
  • gshadow – 组账户的影子组文件。
  • passwd command (passwd 命令) – 用于更改用户密码的工具。
  • vigr command (vigr 命令) – 编辑组文件。
此条目是 Linux/UNIX 系统的帐户文件教程系列(共 3 个)的第 3 个。继续阅读该系列的其余部分:

猜你喜欢

转载自blog.csdn.net/gongdiwudu/article/details/143219602