我正在从一台 Linux 服务器迁移到另一台配置非常相似的服务器。两台服务器都安装了 Plesk,它已自动迁移了大量数据。但是,现在我需要迁移一些在 Plesk 之外创建的 FTP 用户。我已过滤旧密码文件,只保留需要添加到新密码文件中的条目。
我发现,如果我只是将额外的用户附加到新服务器上的 passwd 中,他们就不会在 shadow 中获得条目,这会在以后导致问题。
将这些用户放入 passwd 的最佳方法是什么?一旦导入,我将使用 chpasswd 设置密码。
更新我不仅想导入用户名,还想导入群组、主目录等。
答案1
为什么不使用像 cut/xargs 这样简单的东西呢?
cut -d: -f 1 /srv/old_filtered_passwd | xargs -n 1 useradd
或者可能是像这样更复杂的东西(未经彻底测试)。
awk 'BEGIN{FS=":"} {print "useradd -u " $3 " -g " $4 " -c \"" $5 "\" -h " $6 " "$1}' /srv/old_filtered_passwd > recreate_users
# verify
cat recreate_users
# actually create the users
bash recreate_users
你可以用一个命令来完成整个操作,比如awk ... | bash
。不过我强烈建议你第一次查看 awk 的输出,以确保一切看起来都正确。