无法添加具有数字用户名的用户帐户 - useradd:组“11”不存在

无法添加具有数字用户名的用户帐户 - useradd:组“11”不存在

我是一名业余 Kubuntu 用户,还有很多东西需要学习。

我正在尝试创建一个以数字命名的用户帐户。我有sudo权限,我也在 root 帐户上尝试过。

显然,要添加这样的帐户,您必须使用以下命令:

sudo adduser --force-badname

然后是数字。

我尝试了这个方法,对 10 个账户都有效。但在第 11 个账户中,它失败了,并给出了一条错误消息:

$ sudo adduser --force-badname 11
Allowing use of questionable username.
Adding user `11' ...
Adding new group `11' (1010) ...
Adding new user `11' (1010) with group `11' ...
useradd: group '11' does not exist
adduser: `/usr/sbin/useradd -d /home/11 -g 11 -s /bin/bash -u 1010 11' 
returned error code 6. Exiting.

最后,我把命令改为useradd添加账户,它显示:

useradd: group 11 exists - if you want to add this user to that group, use -g.

于是我输入:

$ useradd -g 11
useradd: group '11' does not exist

所以我求助于原始的 adduser 命令:adduser --force-badname 11 允许使用可疑的用户名。

adduser: The group `11' already exists.

这时,我很生气,但我还是使用命令groupdel删除了第 11 组。我试了一下groupdel 11。确认命令有效后,我进入adduser命令,在 root 帐户上输入adduser --force-badname 11

并且收到与启动时相同的错误信息!

Allowing use of questionable username.
Adding user `11' ...
Adding new group `11' (1010) ...
Adding new user `11' (1012) with group `11' ...
useradd: group '11' does not exist
adduser: `/usr/sbin/useradd -d /home/11 -g 11 -s /bin/bash -u 1012 11'
returned error code 6. Exiting.

答案1

不要这样做,而是使用以字符开头的用户名,如u11


以下是具体情况:

您正在尝试创建一个名为 的用户11,因此将创建一个名为11与您的用户的主要组相同的组。

这个新创建的组将获得一个更大的 ID,例如> 10001003在您的/etc/group文件中,它的行将是:11:x:1003

在添加这个新用户时,useradd尝试将其添加到其主要组,即11,但是在执行此操作时,它认为是11一个组 ID,因此它抱怨没有 ID 为 11 的组。

  • 当显示“组 11 存在”时,这意味着您有一个名为“11”的组,并且
  • 当它说“组‘11’不存在”时,这意味着我找不到任何 ID 为“11”的组。

为什么它对前 10 个账户有效

因为默认情况下,Ubuntu 系统中有一些 ID 为 0 到 10 的组。因此它会将您的用户分配给这些组,并且不会对此提出任何抱怨。但是对于 11,您有一个名为 的组,11但没有 ID 为 的组11

解决方法

所以正如 muru 所说,这只是问题的开始,不要这样做。但是如果你坚持要解决这个问题,你应该找到组 ID 并使用它:

$ grep ^11 /etc/group
11:x:1003

$ sudo useradd 11 -g 1003

不要忘记usermod也使用来更改前 10 个用户的组 ID。

相关内容