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

相关推荐
IronmanJay1 小时前
【LeetCode每日一题】——862.和至少为 K 的最短子数组
数据结构·算法·leetcode·前缀和·双端队列·1024程序员节·和至少为 k 的最短子数组
TensorFlowGAN1 小时前
rhcsa、ce复习(每日编辑,复习完为止)
linux·es
Drscq2 小时前
How to migrate a CentOS 8 to Rocky Linux 8.10
linux·运维·centos
修心光2 小时前
CentOS配置iptables规则并使其永久生效
linux·运维·centos
加载中loading...2 小时前
Linux线程安全(二)条件变量实现线程同步
linux·运维·服务器·c语言·1024程序员节
安科瑞刘鸿鹏2 小时前
校园建筑用电安全监测装置 电气火灾监测预防设备功能介绍
运维·服务器·网络·嵌入式硬件·安全·能源
Wx120不知道取啥名2 小时前
C语言之长整型有符号数与短整型有符号数转换
c语言·开发语言·单片机·mcu·算法·1024程序员节
课堂随想2 小时前
【libGL error】Autodl云服务器配置ACT的conda虚拟环境生成训练数据时,遇到了libGL相关错误,涉及swrast_dri.so
运维·服务器·conda
biomooc3 小时前
R语言 | paletteer包:拥有2100多个调色板!
r语言·数据可视化·1024程序员节
Hello.Reader3 小时前
FFmpeg 深度教程音视频处理的终极工具
ffmpeg·1024程序员节