最新消息:

Linux账户如何完整迁移至其它Server?

Kali Linux Eternal 2257浏览 0评论

Linux 作为我们实际中最常用的服务系统,虽然其相对 windows 更加可靠稳定与高效!但是在运行过程中,难免出现一些意想不到的情况。例如服务器奔溃,内存空间不足,性能过低,损坏等。那么此时我们就需要将服务器,进行迁移!但是,我们又不能将服务器内保存的账户信息完造成破坏!那么对于系统保存的账户信息该如何进行迁移呢?这就好比数据库信息的备份转储一样。好了,说了一大堆下面我们来看操作。

在此之前,我们有必要先来了解一下 linux 系统用户信息会被用到的几个目录及文件位置。

/home: 所有用户数据都被保存在这个家目录下。

/var/spool/mail: 保存了用户的 Email 信息。

/etc/passwd: 保存着所有用户的账户信息。

/etc/shadow: 保存着所有账户的加密密码信息。

/etc/gshadow: 保存所有组的加密密码信息。

/etc/group:定义用户所属组信息。

在简单了解了以上信息后,下面我们就可以开始进行系统账户的迁移工作了!

首先我们创建一个名为 old 的目录:

mkdir /root/old/

设置 UID 过滤限制条件:

注:RHEL/CentOS/Fedora : 默认为500,最大为65534

Debian 和 Ubuntu Linux : 默认为1000,最大为29999

export UGIDLIMIT=500

现在我们通过 awk 命令,通过过滤 UID 的方式。将 /etc/passwd 下的账户信息拷贝到 /root/old/passwd.mov

$ awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534)' /etc/passwd > /root/old/passwd.mov

接着我们拷贝 /etc/group 文件:

 awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534)' /etc/group > /root/old/group.mov

拷贝 /etc/shadow 下的文件:

awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534) {print $1}' /etc/passwd | tee - |egrep -f - /etc/shadow > /root/old/shadow.mov

拷贝 /etc/gshadow 下的文件:

cp /etc/gshadow /root/old/gshadow.mov

备份 /home 和 /var/spool/mail 目录:

tar -zcvpf /root/old/home.tar.gz /home
tar -zcvpf /root/old/mail.tar.gz /var/spool/mai

下面我们就可以通过 USB 或者 SCP 命令,将我们生成的 /root/old 文件拷贝到新的 linux 系统上了:

scp -r /root/old/* user@www.secist.com:/path/to/location

在接下来的操作之前,首先最重要的当然是备份我们当前的账户信息:

mkdir /root/newuser.bac
cp /etc/passwd /etc/shadow /etc/group /etc/gshadow /root/newuser.bac

现在,我们就可以覆盖我们的账户信息啦!

cd /path/to/location
 
cat passwd.mov >> /etc/passwd
 
cat group.mov >> /etc/group
 
cat shadow.mov >> /etc/shadow
 
/bin/cp gshadow.mov /etc/gshadow

接着我们复制提取 home.tar.gz 到新的 Server /home 下:

cd /
 
tar -zxvf /path/to/location/home.tar.gz

我们再提取 mail.tar.gz 到新的 Server /var/spool/mail 下:

cd /
 
tar -zxvf /path/to/location/mail.tar.gz

最后我们只要重启系统,你会发现我们可以使用之前的账户登录及操作啦!

reboot

 

转载请注明:即刻安全 » Linux账户如何完整迁移至其它Server?

您必须 登录 才能发表评论!



合作伙伴