Move User Accounts From Linux Server To Another Linux server

Posted on : April 23, 2011 , Last Updated on : October 1, 2016 By
| Reply More

User Account Move

In Linux, user administration is very important because every process in Linux is owned by a user. Users can be people, accounts tied to physical users or accounts which exist for specific application. Linux user can be divided to two types, one is system users and another one is normal user or application users. The system user has default ID values 0 to 499 where normal user has ID value 500 to 60,000. We rarely upgrade OS and HW and we will migrate data from one server to another, but in some cases we need to move users also. While moving user accounts form one server to another server, you have to move user account related files also which is given below.

First, we have to understand user account related configuration files.

• /etc/passwd contains information about the user.
• /etc/passwd contains information about the group.
• /etc/shadow contains encrypted password for the user.
• /var/spool/mail contains user mails are stored in this file.
• /home/user contains users home directory, hence it may contains user data.

The above files are important while moving users from one server to another, hence we need backup the above files.

[root@localhost ~]#mkdir accountbackup
[root@localhost ~]# export UGIDLIMIT=500
[root@localhost ~]# awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534)' /etc/passwd > /root/accountbackup

Above command will copy the /etc/passwd file filtered accounts to /etc/accountbackup/ passwd.olds.

Similarly, copy the selected groups in /etc/group file:

[root@localhost ~]# awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534)' /etc/group >

Now copy the shadow file:

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

Now, backup the users home directory and users mails:

[root@localhost ~]# tar -zcvpf /root/accountbackup/home.tar.gz /home

Now, backup of the users mails:

[root@localhost ~]# tar -zcvpf /root/move/mail.tar.gz /var/spool/mail

Now you have taken the user account related files. Copy all the data in a pen drive or a new server by scp command. Before starting the migration to new server, make sure to backup all user related files in the new server.

Restore the data into the new server.

[root@localhost ~]# # cat passwd.old >> /etc/passwd
[root@localhost ~]# # cat group.old >> /etc/group
[root@localhost ~]# # cat shadow.old >> /etc/shadow
[root@localhost ~]# # /bin/cp gshadow.old /etc/gshadow

Similarly, restore the users data as well as the users mails to the new server.

[root@localhost ~]# tar -zxvf /path/to/location/home.tar.gz
[root@localhost ~]# tar -zxvf /path/to/location/mail.tar.gz


Tagged With :

Free Linux Ebook to Download

Leave a Reply

All comments are subject to moderation.