使用 groupmod 命令在 Linux 中修改组

在之前的文章中,您学习了 groupadd 和 groupdel 命令。 在本教程中,您将了解 groupmod 命令。

Linux 中的 groupmod 命令通过更改组名或组 ID (GID) 来修改给定组。

该命令的语法是这样的:

groupmod [options] GROUP

修改组是一项管理任务,这就是为什么您需要成为 sudo 用户或使用 root 帐户运行此命令。

我会用 sudo 在此处的 groupmod 命令示例中。

使用 groupmod 命令更改组名

如果要更改组的名称,可以按以下方式进行:

sudo groupmod -n new_groupname old_groupname

这里的好处是,即使您更改了组名,它也不会影响该组拥有的任何文件。

让我们通过真实的例子来看看。

因此,这是属于用户 abhishek 和组 test_group 的文件。

[email protected]:~$ ls -l ab.txt 
-rw-r--r-- 1 abhishek test_group 0 Feb 24 16:39 ab.txt

现在,如果我将组名从 test_group 修改为 testgroup(从名称中删除下划线)

[email protected]:~$ sudo groupmod -n testgroup test_group

它“更改”文件的组所有权以反映新的组名:

[email protected]:~$ ls -l ab.txt 
-rw-r--r-- 1 abhishek testgroup 0 Feb 24 16:39 ab.txt

实际上,即使组名已更改,组 ID 仍保持不变。 让我们看看如何更改组 ID。

使用 groupmod 命令更改组 ID

您可以通过以下方式更改组的 GID:

sudo groupmod -g GID groupname

现在这是一个有风险的修改,应该避免。 首先,不会对 登录定义 像 GID_MIN、GID_MAX、SYS_GID_MIN、SYS_GID_MAX 值来区分系统组和普通组。

第二个也是更重要的事情是该组拥有的文件将由一个不存在的组保留为组所有权。

看到它在 example 在下面我将组测试的组 ID 更改为 1020 并且该组拥有的文件仍然反映旧的 GID。

[email protected]:~$ ls -l a.txt 
-rw-r--r-- 1 abhishek testing 57 Feb 24 15:57 a.txt
[email protected]:~$ sudo groupmod -g 1020 testing
[email protected]:~$ ls -l a.txt 
-rw-r--r-- 1 abhishek 1008 57 Feb 24 15:57 a.txt

如果您想知道,可以在 /etc/group 文件中查看 GID。 您还可以使用 id 命令显示 GID、UID 和其他详细信息。

希望您对 Linux 中用于组管理的 groupmod 命令有更好的了解。 欢迎提出任何问题或建议。