在 Linux 中使用 groupmod 命令修改组
了解如何在 Linux 中使用 groupmod 命令修改组属性,例如组名称和组 ID。
在前面的文章中,您学习了 groupadd 和 groupdel 命令。在本教程中,您将了解 groupmod 命令。
Linux 中的 groupmod 命令通过更改其名称或组 ID (GID) 来修改给定组。
该命令的语法是这样的:
groupmod [options] GROUP修改组是一项管理任务,这就是为什么您需要成为 sudo 用户或使用 root 帐户来运行此命令。
我将在此处的 groupmod 命令示例中使用 sudo。
使用 groupmod 命令更改组名称
如果您想更改组的名称,可以按以下方式进行:
sudo groupmod -n new_groupname old_groupname这里的好处是,即使您更改了组名称,也不会影响该组拥有的任何文件。
让我们通过真实的例子来看看。
因此,这是一个属于用户 abhishek 和组 test_group 的文件。
abhishek@nuc:~$ ls -l ab.txt
-rw-r--r-- 1 abhishek test_group 0 Feb 24 16:39 ab.txt现在,如果我将组名称从 test_group 修改为 testgroup (从名称中删除下划线)
abhishek@nuc:~$ sudo groupmod -n testgroup test_group它“更改”文件的组所有权以反映新的组名称:
abhishek@nuc:~$ 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 值)执行检查来区分系统组和普通组。
第二件也是更重要的事情是,该组拥有的文件将由不存在的组保留组所有权。
请参阅下面的示例,其中我将组测试的组 ID 更改为 1020,并且该组拥有的文件仍然反映旧的 GID。
abhishek@nuc:~$ ls -l a.txt
-rw-r--r-- 1 abhishek testing 57 Feb 24 15:57 a.txt
abhishek@nuc:~$ sudo groupmod -g 1020 testing
abhishek@nuc:~$ 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命令有更好的了解。欢迎任何问题或建议。

