了解 Linux 中的 /etc/group 文件

目录

一、说明

[二、了解 /etc/group 文件](#二、了解 /etc/group 文件)

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

[3.1 任务:查看当前组设置](#3.1 任务:查看当前组设置)

[3.2 任务:找出用户所在的组](#3.2 任务:找出用户所在的组)

[3.3 任务:打印用户/组身份](#3.3 任务:打印用户/组身份)

[3.3.1 仅显示组 ID,输入:](#3.3.1 仅显示组 ID,输入:)

[3.3.2 仅显示组 ID 和补充组,输入:](#3.3.2 仅显示组 ID 和补充组,输入:)

[四、如何使用 groupadd 命令在 Linux 中创建新组?](#四、如何使用 groupadd 命令在 Linux 中创建新组?)

[五、如何从 Linux 系统中删除已有的用户组?](#五、如何从 Linux 系统中删除已有的用户组?)

[六、修改 Linux 系统中的现有用户组](#六、修改 Linux 系统中的现有用户组)

[6.1 在 Linux 中更改组 ID](#6.1 在 Linux 中更改组 ID)

[6.2 更改组名称](#6.2 更改组名称)

[七、关于 gpasswd 命令的说明](#七、关于 gpasswd 命令的说明)

[八、/etc/groups 相关 Linux 命令](#八、/etc/groups 相关 Linux 命令)


一、说明

/etc/group 是一个文本文件,用于定义用户在 Linux 和 UNIX 操作系统下所属的组。在 Unix / Linux 下,可以将多个用户分类为组。Unix 文件系统权限分为三个类:用户、组和其他。使用组允许以有组织的方式委派其他功能,例如访问磁盘、打印机和其他外围设备。除其他外,此方法还使超级用户能够将某些管理任务委派给普通用户。

教程详细信息
难度级别 容易
需要Root 权限 是的
要求 Linux 或 Unix 终端
类别 用户管理
操作系统兼容性 AIX • AlmaLinux • AlpineAmazon LinuxArch • BSD • CentOSDebianFedoraFreeBSDHP-UXLinuxmacOS • Mint • NetBSD • OpenBSDopenSUSE • Pop!_OS • RHEL • Rocky • StreamSUSEUbuntuUnix • WSL
预计阅读时间 4 分钟

二、了解 /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 命令

OR `id -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 sales` sudo 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 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 个。继续阅读该系列的其余部分:

相关推荐
A小辣椒19 小时前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5203 天前
Linux 11 动态监控指令top
linux