如何在从一台服务器迁移到另一台 Centos 7 服务器时更改用户账户的 UID、GID

如何在从一台服务器迁移到另一台 Centos 7 服务器时更改用户账户的 UID、GID

我有一个运行着 1000 个用户的邮件服务器。我想将该服务器迁移到 Centos 7 服务器。

场景 1(旧服务器):用户账户 UID 以 501 开头

场景 2(新 Centos 7 服务器):用户帐户以 1001 开头,在 /etc/login.defs 中定义

因此我无法将用户帐户迁移到我的新服务器。因为 UID 不匹配的问题。

我如何将以前的服务器用户迁移到 UID 以 1001 开头的新 Centos 7 服务器?

答案1

如果存在外部目录,则将其用于用户。对于现代 Linux 上的 LDAP 或 Active Directory,sssd 是一种常见的选择。

当您仍想使用文件时,请将整个文件从旧服务器复制到新服务器:/etc/passwd /etc/shadow /etc/group。警告:

  • 你可以把自己锁在外面的访问权限。
  • 您必须使用旧的凭证。
  • 在 Linux 或 UNIX 发行版系列之间移动时,这将不起作用,它们各自对 UID 和 GID 都有自己的假设。

或者,您仍然可以指定用户和组 ID,甚至低于默认的“系统用户”阈值。如果您关心每个人的 ID,请务必考虑这样做。

[root@sf ~]# groupadd textgroup --gid 501
[root@sf ~]# useradd person --gid 501 --uid 501
[root@sf ~]# id person
uid=501(person) gid=501(textgroup) groups=501(textgroup)
[root@sf ~]# grep PRETTY /etc/os-release
PRETTY_NAME="CentOS Linux 7 (Core)"

相关内容