将 Linux 用户和密码复制到新服务器

Mik*_*maa 31 linux passwd

我正在通过服务器迁移到新硬件。系统的一部分将被重建。需要复制哪些文件和目录才能使用户名、密码、组、文件所有权和文件权限保持不变?

Ubuntu 12.04 LTS。

use*_*517 46

从...开始

/etc/passwd - user account information less the encrypted passwords 
/etc/shadow - contains encrypted passwords 
/etc/group - user group information 
/etc/gshadow - - group encrypted passwords
Run Code Online (Sandbox Code Playgroud)

一定要确保文件的权限也是正确的

  • 重要的一点:这假设服务器仅具有基于文件的身份验证。要迁移使用例如 LDAP 或 NIS 的服务器,这些文件是不够的,*特别是*如果身份验证服务器位于同一系统上。其他子系统(例如 Samba、SQL)也可能有自己的身份验证数据库。 (7认同)
  • 来自我的 +1。我也想知道`/home`;通常,ssh 密钥位于主目录中,因此`~/.ssh` 至少可以被视为身份验证基础结构的一部分。 (6认同)
  • @MadHatter:事实上,我假设 OP 会知道他们需要复制用户主目录,但我想你在 SF 上永远不会知道:) (2认同)
  • 别担心,作者知道。 (2认同)
  • 尽管上述方法可行,但您也应该真正复制 gshadow。 (2认同)
  • 请注意维护目标服务器上可能不在原始服务器上的系统帐户。并非所有发行版都是平等的。 (2认同)

van*_*ome 14

我已经用 Gentoo Linux 做了这个并复制了:

  • /etc/passwd
  • /etc/shadow
  • /etc/group
  • /etc/gshadow

就是这样。

如果另一台机器上的文件有不同的所有者 ID,您可以将它们更改为 /etc/group 和 /etc/passwd 上的所有者 ID,然后您就可以恢复有效权限。


Pau*_*ear 12

在复制其他答案中提到的文件时,请注意不要删除或重新编号系统帐户。系统服务通常没有固定的用户 ID,如果您以与原始机器不同的顺序安装软件包(如果它是长期存在的,这很可能),那么它们最终将以不同的顺序结束. 我倾向于将这些文件复制到 /root/saved-from-old-system 之类的地方,然后手动编辑它们,以便仅复制非系统帐户。(可能有一个工具,但我不倾向于经常复制这样的系统来保证调查一个。)