Linux groups 命令实战示例

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,我们将探索 Linux 的 groups 命令,该命令用于管理用户组。我们将学习如何查看用户所属的组、创建新组以及从组中添加或删除用户。本实验涵盖了对 groups 命令的理解、创建和管理用户组,以及为用户分配和移除组。本实验中涉及的命令通常用于 Linux 环境中的用户和权限管理。

Linux 命令速查表


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/UserandGroupManagementGroup -.-> linux/usermod("User Modifying") linux/UserandGroupManagementGroup -.-> linux/groups("Group Displaying") linux/UserandGroupManagementGroup -.-> linux/groupadd("Group Adding") linux/UserandGroupManagementGroup -.-> linux/groupdel("Group Removing") linux/UserandGroupManagementGroup -.-> linux/id("User/Group ID Displaying") subgraph Lab Skills linux/cat -.-> lab-422707{{"Linux groups 命令实战示例"}} linux/usermod -.-> lab-422707{{"Linux groups 命令实战示例"}} linux/groups -.-> lab-422707{{"Linux groups 命令实战示例"}} linux/groupadd -.-> lab-422707{{"Linux groups 命令实战示例"}} linux/groupdel -.-> lab-422707{{"Linux groups 命令实战示例"}} linux/id -.-> lab-422707{{"Linux groups 命令实战示例"}} end

理解 Linux 的 groups 命令

在这一步中,我们将探索 Linux 的 groups 命令,该命令用于管理用户组。groups 命令允许你查看用户所属的组、创建新组以及从组中添加或删除用户。

首先,让我们检查当前用户 labex 所属的组:

groups labex

示例输出:

labex : labex sudo

输出显示用户 labexlabexsudo 组的成员。

要查看系统上所有的组,可以使用以下命令:

cat /etc/group

示例输出:

root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:labex
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:labex
floppy:x:25:
tape:x:26:
sudo:x:27:labex
audio:x:29:
dip:x:30:
www-data:x:33:
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
gnats:x:41:
shadow:x:42:
utmp:x:43:
video:x:44:
sasl:x:45:
plugdev:x:46:labex
staff:x:50:
games:x:60:
users:x:100:
nogroup:x:65534:
systemd-journal:x:101:
systemd-network:x:102:
systemd-resolve:x:103:
systemd-timesync:x:104:
input:x:105:
crontab:x:106:
netdev:x:107:
syslog:x:108:
messagebus:x:109:
render:x:110:
ssh:x:111:
lxd:x:112:labex

这显示了系统上定义的所有组,包括它们的组 ID 以及属于每个组的用户。

创建和管理用户组

在这一步中,我们将学习如何使用 groupaddgroupmodgroupdel 命令在 Linux 中创建和管理用户组。

首先,让我们创建一个名为 "developers" 的新组:

sudo groupadd developers

示例输出:

无输出,但组 "developers" 已创建。

为了验证组是否创建成功,我们可以再次列出所有组:

cat /etc/group

你应该能在输出中看到 "developers" 组。

现在,让我们将用户 "labex" 添加到 "developers" 组中:

sudo usermod -a -G developers labex

为了确认用户已添加到组中,我们可以检查用户所属的组:

groups labex

示例输出:

labex : labex sudo developers

如果你需要修改组的属性,可以使用 groupmod 命令。例如,将组名从 "developers" 改为 "engineering":

sudo groupmod -n engineering developers

最后,要删除一个组,可以使用 groupdel 命令:

sudo groupdel engineering

示例输出:

无输出,但 "engineering" 组已被删除。

为用户分配和移除组

在这最后一步中,我们将学习如何在 Linux 中为用户分配和移除组。

首先,让我们创建一个名为 "testers" 的新组:

sudo groupadd testers

现在,将用户 "labex" 添加到 "testers" 组中:

sudo usermod -a -G testers labex

为了验证用户是否已添加到组中,我们可以检查用户所属的组:

groups labex

示例输出:

labex : labex sudo developers testers

如果你需要从组中移除用户,可以使用 gpasswd 命令:

sudo gpasswd -d labex testers

让我们验证用户是否已从 "testers" 组中移除:

groups labex

示例输出:

labex : labex sudo developers

你也可以使用 usermod 命令从组中移除用户:

sudo usermod -G labex,developers labex

这将从所有组中移除用户 "labex",只保留 "labex" 和 "developers" 组。

总结

在本实验中,我们首先学习了 Linux 的 groups 命令,它允许我们查看用户所属的组、创建新组以及从组中添加或移除用户。接着,我们探索了如何使用 groupaddgroupmodgroupdel 命令创建和管理用户组。最后,我们介绍了如何使用 usermod 命令为用户分配和移除组。

本实验的关键学习点包括理解 groups 命令的用途和用法、创建和修改用户组,以及管理用户在组中的成员资格。这些技能对于在 Linux 环境中有效管理用户访问权限至关重要。

Linux 命令速查表