创建本地用户帐户
首先,我们将创建一个用于修改的测试用户帐户,有关更多信息,请参阅我们关于向 Linux 添加新用户的帖子。
[jack@onitroad ~]# useradd testaccount
这创建了一个名为“testaccount”的用户。
我们在创建帐户时没有指定任何选项,所以它相当普通,目前不是任何补充组的成员。
组类型
首先简要介绍一下我们将在这里处理的不同类型的群体。
当我们创建一个新的用户帐户时,默认情况下会在包含本地组配置的 /etc/group 文件中自动创建一个具有相同名称的初始主组。
此用户帐户将具有该组的组 ID (GID),它是用户的主要组,并且用户一次仅属于这些类型的组之一。
如果我们想将相同的用户帐户添加到任何其他组中,我们可以修改 GID,或者更常见的是我们将简单地添加补充组。
本质上,用户帐户有一个 GID,因为它有一个主要组,但也可以添加到任意数量的添加补充组。
修改本地用户帐号
现在帐户存在,我们可以继续使用“usermod”修改它。
更改主要组
在本例中,我们将更改用户的组 ID (GID)。
[jack@onitroad ~]# id testaccount uid=1339(testaccount) gid=1339(testaccount) groups=1339(testaccount) [jack@onitroad ~]# groupadd group1 [jack@onitroad ~]# usermod testaccount -g group1 [jack@onitroad ~]# id testaccount uid=1339(testaccount) gid=1340(group1) groups=1340(group1)
正如我们在上面看到的,testaccount 的组使用 'id' 命令显示,然后我们使用 'groupadd' 创建一个名为 group1 的新组,并使用 usermod 我们使用 -g 选项将主要组更改为我们新创建的组 1.
最后,我们再次使用“id”来显示组的变化。
这只会为用户修改 /etc/passwd 文件中的 GID,它不会编辑 /etc/group,因为该组仍然存在并且只有补充组在此处添加了用户,我们将在接下来介绍。
将用户添加到组
更常见的是使用 -G 选项(注意大写 G,而不是小写),这将添加补充组。
我们可以通过用逗号分隔组名来在单个命令中指定多个组。
[jack@onitroad ~]# groupadd group2 [jack@onitroad ~]# usermod testaccount -G group1,group2 [jack@onitroad ~]# id testaccount uid=1339(testaccount) gid=1339(testaccount) groups=1339(testaccount),1340(group1),1341(group2)
执行此操作后,/etc/group 配置文件将更改,显示 testaccount 用户列在 group1 和 group2 之后,因为它现在是两个组的成员。
[jack@onitroad ~]# grep testaccount /etc/group testaccount:x:1339: group1:x:1340:testaccount group2:x:1341:testaccount
在此示例中,GID 为 1339 的 testaccount 组是 testaccount 用户的主要组,而我们可以看到 group1 和 group2 的末尾都添加了“testaccount”,这是该组成员的用户列表的位置展示。
请注意,如果我们运行“usermod”命令并指定 -G,则默认操作是从任何现有的补充组中删除用户并仅添加新指定的组。
如果我们希望保留现有的组成员身份(更常见的情况),只需指定 -a 标志,该标志将添加指定的组并保持旧组成员身份不变。
在 Linux 中,我们可以使用“usermod”命令修改本地用户帐户。
在这里,我们将介绍一些使用 usermod 的各种语法选项来修改 Linux 中现有用户帐户的示例,特别是将它们添加到组中。