我是一名业余 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,例如> 1000
:1003
在您的/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。