将用户帐户从旧Linux服务器移动或迁移到新Linux服务器
时间:2020-01-09 10:40:32 来源:igfitidea点击:
如何将用户帐户从旧Linux服务器移动或迁移到包括邮件的新Cent OS Linux服务器?
此新系统全新安装。
您可以使用tar,awk,scp等标准命令将用户从旧的Linux服务器迁移到新的Linux服务器。
如果您使用的是旧版Linux发行版,例如Redhat 9或Debian 2.x,这也很有用。
传统Linux用户管理需要以下文件/目录:
/etc/passwd
包含每个用户帐户的各种信息。/etc/shadow
包含用户帐户的加密密码信息和可选的密码有效期信息。/etc/group
定义用户所属的组/etc/gshadow
组影子文件(包含组的加密密码)/var/spool/mail
通常,用户电子邮件存储在这里。/home
所有用户数据存储在这里。
警告:以下信息需要对Linux概念有很好的理解。
作者不承担任何赔偿责任。
您需要将上述所有文件和目录从旧服务器备份到新Linux服务器。
在旧Linux系统上执行的命令
首先创建一个旧用途的tar包(旧Linux系统)。
创建目录:
# mkdir /root/move/
设置UID过滤器限制:
# export UGIDLIMIT=500
现在使用awk将/etc/passwd帐户复制到/root/move/passwd.mig,以过滤掉系统帐户(即仅复制用户帐户)
# awk -v LIMIT=$UGIDLIMIT -F: '(>=LIMIT) && (!=65534)' /etc/passwd > /root/move/passwd.mig
复制/etc/group文件:
# awk -v LIMIT=$UGIDLIMIT -F: '(>=LIMIT) && (!=65534)' /etc/group > /root/move/group.mig
复制/etc/shadow文件:
# awk -v LIMIT=$UGIDLIMIT -F: '(>=LIMIT) && (!=65534) {print }' /etc/passwd | tee - |egrep -f - /etc/shadow > /root/move/shadow.mig
复制/etc/gshadow(很少使用):
# cp /etc/gshadow /root/move/gshadow.mig
备份/home和/var/spool/mail目录:
# tar -zcvpf /root/move/home.tar.gz /home # tar -zcvpf /root/move/mail.tar.gz /var/spool/mail
其中:
- 添加到Linux系统的用户始终以Linux发行版指定或由admin设置的UID和GID值开头。根据不同的Linux发行版的限制:
- " RHEL/CentOS/Fedora Core":默认为500,上限为65534(/etc/libuser.conf)。
- Debian和Ubuntu Linux:默认为1000,上限为29999(/etc/adduser.conf)。
- 永远不要在新安装的Cent OS Linux上创建任何新的系统用户帐户。因此,以上awk命令根据Linux发行版过滤掉了UID。
export UGIDLIMIT = 500
为普通用户帐户设置UID开始限制。根据您的Linux发行版设置此值。awk -v LIMIT = $UGIDLIMIT -F:($3> = LIMIT)&&($3!= 65534)/etc/passwd>/root/move/passwd.mig
您需要使用-v选项将UGIDLIMIT变量传递给awk (它将shell程序变量UGIDLIMIT的值分配给awk程序变量LIMIT)。选项-F:将字段分隔符设置为:。最后,awk从/etc/passwd中读取每一行,过滤掉系统帐户并生成新文件/root/move/passwd.mig。相同的逻辑适用于awk命令的其余部分。- tar -zcvpf /root/move/home.tar.gz/home备份用户/home目录
- tar -zcvpf /root/move/mail.tar.gz/var/spool/mail`备份用户邮件目录
使用scp或U盘或磁带将/root/move复制到新的Linux系统。
# scp -r /root/move/* [email protected]:/path/to/location
在新的Linux系统上执行的命令
首先,备份当前用户和密码:
# mkdir /root/newsusers.bak # cp /etc/passwd /etc/shadow /etc/group /etc/gshadow /root/newsusers.bak
现在在/etc /中还原passwd和其他文件
# cd /path/to/location # cat passwd.mig >> /etc/passwd # cat group.mig >> /etc/group # cat shadow.mig >> /etc/shadow # /bin/cp gshadow.mig /etc/gshadow
请注意,您必须使用>>
(追加),而不是>
(创建)shell重定向。
现在将home.tar.gz复制并解压缩到新服务器/home
# cd / # tar -zxvf /path/to/location/home.tar.gz
现在将mail.tar.gz(邮件)复制并解压缩到新服务器/var/spool/mail
# cd / # tar -zxvf /path/to/location/mail.tar.gz
现在重启系统;当Linux恢复运行时,您的用户帐户将像以前一样在旧系统上工作:
# reboot