我有 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)
并且不要忘记为每个用户重置密码。
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)
如果出现问题,您可以相应地使用userdel或groupdel重新开始。
| 归档时间: |
|
| 查看次数: |
16055 次 |
| 最近记录: |