如何通过提供 uid 和 gid 选项在 linux 中创建用户?

san*_*kar 4 linux

我有 2 台 linux 机器。在一台机器上,这些是用户:

sysadmin2:x:4201:4200::/home/sysadmin2:/bin/bash
appadmin1:x:4100:4100::/home/appadmin1:/bin/bash
appadmin2:x:4101:4100::/home/appadmin2:/bin/bash
dataadmin1:x:4300:4300::/home/dataadmin1:/bin/bash
dataadmin2:x:4301:4300::/home/dataadmin2:/bin/bash
sysadmin1:x:4200:4200::/home/sysadmin1:/bin/bash
Run Code Online (Sandbox Code Playgroud)

我想将这些复制到另一台机器上。如何使用相同的 uid 和 gid 值创建这些用户?有没有办法将它们复制到另一台机器上?

Max*_*Max 17

走这条路:

useradd sysadmin2 -u 4201 -g 4200 -m -s /bin/bash
useradd appadmin1 -u 4100 -g 4100 -m -s /bin/bash 
...
Run Code Online (Sandbox Code Playgroud)

并且不要忘记为每个用户重置密码。

  • 此外,组必须在创建用户之前存在。`groupadd sysadmin2 -g 4200` (3认同)

Rud*_*ela 11

总而言之,您可以使用该useradd命令将用户添加到 Linux 系统。该-u标志允许您设置特定的用户 ID,该-g标志允许您设置特定的组 ID。请参阅useradd的联机帮助页以获取更多详细信息 - 在终端上键入man useradd即可查看它。

现在,具体来说您的问题,请参见下文。

假设您的原始计算机上有三个组:

$ cat /etc/group
...
appadmins:x:4100:
sysadmins:x:4200:
dataadmins:x:4300:
...
Run Code Online (Sandbox Code Playgroud)

在您的目标/新计算机上,您应该首先使用以下命令创建组:

groupadd appadmins -g4100
groupadd sysadmins -g4200
groupadd dataadmins -g4300
Run Code Online (Sandbox Code Playgroud)

然后,您可以继续创建实际用户,如下所示:

useradd appadmin1 -u4100 -g4100 -d/home/appadmin1 -s/bin/bash
useradd appadmin2 -u4101 -g4100 -d/home/appadmin1 -s/bin/bash
useradd sysadmin1 -u4200 -g4200 -d/home/sysadmin1 -s/bin/bash
useradd sysadmin2 -u4201 -g4200 -d/home/sysadmin2 -s/bin/bash
useradd dataadmin1 -u4300 -g4300 -d/home/dataadmin1 -s/bin/bash
useradd dataadmin2 -u4301 -g4300 -d/home/dataadmin2 -s/bin/bash
Run Code Online (Sandbox Code Playgroud)

-d选项用于设置主目录,该-s选项用于设置shell。同样,-u-g用于设置特定的用户和组 ID。

要检查一切是否正确,只需grep admin在您的/etc/passwd文件上使用:

$ grep admin /etc/passwd
appadmin1:x:4100:4100::/home/appadmin1:/bin/bash
appadmin2:x:4101:4100::/home/appadmin1:/bin/bash
sysadmin1:x:4200:4200::/home/sysadmin1:/bin/bash
sysadmin2:x:4201:4200::/home/sysadmin2:/bin/bash
dataadmin1:x:4300:4300::/home/dataadmin1:/bin/bash
dataadmin2:x:4301:4300::/home/dataadmin2:/bin/bash
Run Code Online (Sandbox Code Playgroud)

如果出现问题,您可以相应地使用userdelgroupdel重新开始。