了解 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 个。继续阅读该系列的其余部分:

相关推荐
Linux运维技术栈8 分钟前
Vim 命令大全:从入门到精通
linux·编辑器·vim
c7_ln14 分钟前
Linux基本指令(包含vim,用户,文件等方面)超详细
linux·操作系统·vim
晨曦backend43 分钟前
Vim 撤销 / 重做 / 操作历史命令汇总
linux·编辑器·vim
晨曦backend1 小时前
Vim 插件管理:MiniBufExplorer 使用指南
linux·编辑器·vim
fatiaozhang95272 小时前
中兴B860AV1.1_晨星MSO9280芯片_4G和8G闪存_TTL-BIN包刷机固件包
android·linux·adb·电视盒子·av1·魔百盒刷机
froxy2 小时前
Panthor 开源方案与 Mesa 图形库的技术解析
linux·开源
nice_evil2 小时前
华为Openeuler/Linux/CentOs 网络配置及故障排查/远程连接设置ssh/ibmc等问题及解决方案合集
linux·网络·centos·openeuler·网络配置与激活
liulilittle2 小时前
OpenSSL 的 AES-NI 支持机制
linux·运维·服务器·算法·加密·openssl·解密
yzx9910132 小时前
柑橘检测模型
服务器·人工智能·深度学习·算法
无聊的小坏坏2 小时前
进程间通信详解(三):Linux进程信号深度解析
linux·bash