{ 63 comments… read them below or add one }

1 podee December 21, 2006

Hi

I followed your instuction on CentOS 4.4. When I reboot I lost my root user and gdm din’t start.
I could login from all user but not root.
Can you help to give me some advices please?

Pordee

Reply

2 nixcraft December 21, 2006

You made mistake somewhere. But don’t worry you can login into single user mode (rescue mode) and reset root account password.

http://www.cyberciti.biz/faq/linux-reset-forgotten-root-password/

Reply

3 ssdon January 2, 2007

Great! The following line is probably a typo as I’m assuming you mean to back this up with a copy, otherwise you nuke the password files (probably what happened to nixcraft)

# mv /etc/passwd /etc/shadow /etc/group /etc/gshadow /root/newsusers.bak

# cp /etc/passwd /etc/shadow /etc/group /etc/gshadow /root/newsusers.bak

Reply

4 nixcraft January 3, 2007

ssdon,

Typo has been fixed.

Appreciate your feedback.

Reply

5 Tom January 3, 2007

There is an error in the article. In the step where you back up the passwd, group, shadow, and gshadow files from the new system to the newuser.bak directory, use the cp command, not mv.

In other words, the article should read:

“Commands to type on new Linux system

First, make a backup of current users and passwords:
# mkdir /root/newsusers.bak
# cp /etc/passwd /etc/shadow /etc/group /etc/gshadow /root/newsusers.bak”

Reply

6 Bud January 15, 2007

Your instructions worked perfectly when migrating accounts from Redhat 4ES to another Redhat 4ES. I added a couple of steps to move all the aliases and aliase folders to the new server. Thanks

Reply

7 Oduor Sam January 21, 2007

Thanks,
I am looking for a payrise after rescuing a dying server. It has worked for me perfectly.

Reply

8 Rick January 31, 2007

It may sound complicated, however, I am much more happy to do this with Linux than with Mickey$oft O/S’s, in fact, I am much more happy to do ANYTHING with Linux over Windoze!

Reply

9 _ranger_ January 31, 2007

If you had used LDAP for user accounts, then you wouldn’t have needed to migrate user accounts ….

Also, you could skip the whole tar aspect by just using rsync, e.g. rsync -e ssh -avtP /home/ newserver:/home

Reply

10 Charles Witt January 31, 2007

Thanks for the howto. This is really close to what I have been looking for. In my particular situation LDAP and NIS do not fit as well as your howto does. Also thanks for the comments of everyone, as they are helpful.

Reply

11 exi February 5, 2007

you might wanne consider runing sshfs on your new server, then u can login to the old (if sshd is running) and simply copy the requierd data true fx. mc, and get all the file rights w you…
its fast is simpel, and you only need to have secure shell intstalled on the old box`s to make it work… (and most boxses have… ;)

just a littet advice for the data moving part.

Reply

12 Phil February 9, 2007

I have a problem, for starters, it look lie I was kind of doing the right thing myself but this blog really helps, thanks. Anyway everything works fine untill I get to the bit where I am extraction all the users data from the home.tar.gz. (kind of important bit) and it fails with text flying up the screen saying “Cannot change ownership to uid 511, gid 511″ and “Cannot mkdir: Permission denied” and ” Cannot open: Permission denied”

obviously I do not have permissions :o(

I am loged in as root and the home directory of the new server has these permissions:

drwxrwxrwx 12 root root 0 Feb 8 19:28 home

I’m not sure how it is possible to obtaim more permissions than that. I have tried with other privilages on the home directory and it still does it.

PLease can someone help me

Many thanks
Phil

Reply

13 GT4NE1 February 14, 2007

Don’t forget about migrating cron jobs.

/var/spool/cron

Anything else we haven’t thought of?

Reply

14 aleksb April 17, 2007

Hi!

I tried your howto, and everything went along great until i rebooted and tried to log on with the users i just copied over. root works fine. The passwords are not accepted, and i cannot change them with passwd. “passwd: Authentication token manipulation error”. Im using fedora core 6.

Please help
Aleks

Reply

15 aleksb April 17, 2007

Nevermind, figured it out :)

Were missing a statement in the shadow file copy thingamabob

Reply

16 vikrant v mankar April 24, 2007

hi i am new user in linux i am getting every answer from ur site.you are providing great solution on every problem its being great to refer your site thanks for every thing

Reply

17 Subhanjan July 19, 2007

Hi,
I have a small query my new system already has couple of user accounts now I want to transfer the user accounts from the old system I have checked both the systems there is no conflicts in UID,GID so shall I go ahead with it.

Subhanjan

Reply

18 Subhanjan July 19, 2007

Hi,
The things worked beautifully for me.
Thanks to the author.One more thing cant I script the steps that are done by the command awk?

Subhanjan

Reply

19 NewLinuxUser August 23, 2007

I was able to migrate the home folders and accounts from RedHad Linx to Fedora but it seems that I cannot log in with the migrated accounts although I am able to see them under USERS. Am I missing anything? Please help.

Reply

20 Prashantshant August 27, 2007

I am very much thankful that I got migration solution of user. How to transfer printer settings of each user from one m/c to another? we have localy connected the printers to thin clients.

Reply

21 Paul Douglas Franklin September 19, 2007

Thank you so much. This is beautiful. I’m trying to upgrade to a new physical box, different distro, switch to ldap, and from Samba 2 to Samba 3. All this without messing up the working server. I’ve messed up the new box several times, and your migration page is very helpful in avoiding mistakes during this stage. BTW, I used rsync instead of tar for the home directories.

Reply

22 asaguru October 10, 2007

now i am using centos 3 in a dell server now in that server i am running sendmail squid and iptables ftp now i want to migrate the server in to new dell server running in centos 5

please any one help me on this issue

Reply

23 RaM October 30, 2007

hi
everyone i have question im a newbie admin can anyone give me advise or help me if how can i backup my old linux email server III to new one or migrate to cent mail..tnx what are the important files to back up for linux suse email server III?

Reply

24 Eliena Andrews November 27, 2007

hii,
i followed the procedure above, after all steps. USers password is not getting accepted, what could have went wrong ?

Eliena Andrews

Reply

25 Kevin Smith December 24, 2007

I cut and pasted the commands into an SSH terminal & checked the passwd.mig and shodow.mig to find they were empty!
I double checked the lines and they were correct (values ect.)
Plus I end up with a file called “-” which I’m guessing comes from the “/etc/shadow” line “tee -” (typo maybe?)
Id really like to get this working as it would be quite helpful with my project. My Level is slightly above newbie Admin.

Kev

Reply

26 mj40 February 6, 2008

First of all i just wanna say thank you guys! This is my first time to get into the linux world! ….

I follow the instruction regarding how to’s .. then after rebooting my new centos5 box error message appears:

“The user database cannot be read. The problem is most likely caused by a mismatch between /etc/passwd and /etc/shadow or /etc/group and /etc/shadow. The program will exit now.”

I follow the instructions twice and i got same message error. I dont know how to fix this one. Please help me…

Thanks.

Reply

27 Augusto February 19, 2008

this how to works great :) But now Im stuck i need to migrate from Redhat to Debian the UGIDLIMIT are different on this distros? any advice ?
thanks

Reply

28 Betty Harvey June 17, 2008

Great instructions easy to follow!!! Worked like a charm!! Thanks for making this available – I
have it bookmarked for when I do this again!

Reply

29 Peter Thomson June 18, 2008

RE: Augusto need to migrate from Redhat to Debian the UGIDLIMIT are different on this distros
this advice would be useful for me too. Is it possible to adjust the /etc/passwd and /etc/group files?

Reply

30 Brett Knights June 26, 2008

Thanks, This was very useful.
I needed to move a couple of system accounts

so did this:
awk -F: '($1 ~ /(tomcat|apache)/)' /etc/passwd > /root/move/passwd.mig
awk -v LIMIT=$UGIDLIMIT -F: '($3>=LIMIT) && ($3!=65534)' /etc/passwd >> /root/move/passwd.mig

and then couldn’t figure out what the tee gave me and I was moving a set of users not based on UID so did this:
awk -F: '{print $1}' /root/move/passwd.mig |egrep -f - /etc/shadow > /root/move/shadow.mig

HTH

Reply

31 Debbie August 8, 2008

Fabulous! Routine worked great! Thanks for posting it, saved me a ton of time.

Reply

32 Bryan August 26, 2008

Also – a couple of commands to check out if you are having problems with “User database cannot be read” error: pwconv, grpconv and pwck. Works like a charm – now… :)

Reply

33 Miro October 16, 2008

OK, I followed instructions… got stuck with users not being able to log in. If instructions were not correct, how do I fix it now?

Reply

34 Alan November 7, 2008

Excellent! I followed the instructions and did a fresh install of openSuse 11.0 on to 10.3. I have my old /home on a separate partition and didn’t mount it during install because Suse wants an initial user which would have overwritten my original first user (UsId=1000). I installed, logged in as root, deleted the initial user, changed the mount of /home to point to my old /home partition, did the transfer of backed up passwd files etcetera, rebooted and bingo!

My only worry was, when it came to generating the initial user during install, I had a choice of encryption algorithms for the password. Obviously if I’d chosen the wrong one I’d be stuck (though I could probably log in as root and reset the users’ passwords).

So my question is: is it possible to tell what encryption algorithm was used for password storage before starting?

Thanks again for the info.

Alan.

Reply

35 Dominic November 26, 2008

I am wanting to mirror users/groups to from one Ubuntu server to another. I see that Ubuntu starts off with a user with UID 1000 (created with the name you give it in setup), I guess I should not try to migrate this user since it already exists on the destination machine i.e. I should set UGIDLIMIT=1001?

What if one re-runs this action later to update the mirror? Do users gets duplicated cos surely one gets multiple entries for same user in /etc/passwd?

Reply

36 Mike December 17, 2008

Great Doc. I was able to migrate a CentOS system to a VM.

Reply

37 Ganymede January 9, 2009

My $0.02: For those who are concerned about UID’s and GID’s…

…you can change UID’s and GID’s on the old system before migration using:

groupmod -g (newgid) groupname
usermod -g (newgid) username OR usermod -G (newgid) username
(‘g’ changes the initial group or ‘G’ to add an additional group membership)

Make a backup of the old files first and then change the group GID then change any appropriate users attached to those groups if necessary. Test to make sure all is well. You can do this preemptively if you are going to from a system that starts custom groups at 500 to one that starts custom groups at 1000 or if you don’t want any UID/GID conflicts with your target system. Be the superuser and it would also be prudent to make the changes while none of the users are attached.

Feel free to pick this post apart.

Reply

38 KPryor January 10, 2009

Very very helpful. I’m going to be needing to do this soon and didn’t really know how to proceed. Thanks!
KP

Reply

39 Joe Riley February 5, 2009

Your FAQ fails to copy over ‘/etc/passwd-’ as well

in the command:
cp /etc/passwd /etc/shadow /etc/group /etc/gshadow /root/newsusers.bak

should be:

cp /etc/passwd /etc/passwd- /etc/shadow /etc/group /etc/gshadow /root/newsusers.bak

Reply

40 Shawn February 17, 2009

Fantastic instructions. A+++

Thanks.

Reply

41 gczman March 2, 2009

copied the mbox’s from one unix box and the /etc/passwd and /etc/shadow and it worked perfectly. thanks

Reply

42 waloyce March 24, 2009

Thanks the howto is very useful.But how to migrate the virtual users and domains accounts to a new server

Reply

43 Denis March 30, 2009

Great instructions, worked well for me
BTW, if I had 2 linux servers, do you think it would be possible to merge the accounts into one of the 2 ?

Reply

44 roshan April 6, 2009

your cp & awk command is so good

Reply

45 fidel April 23, 2009

thanks for this small & easy how-to

Worked like a charme

Reply

46 Juan Carlos June 15, 2009

there is something similiar for Solaris ?

Reply

47 Vivek Gite June 15, 2009

@Juan,

Solaris uses the same files /etc/passwd and friends. So it should work with a little modification.

Reply

48 mstone June 16, 2009

Also check for aliases because a common multiple recipients solution uses that technique

Reply

49 Andy July 29, 2009

If you use Samba shares; remember to grab /etc/samba/smb.conf, /etc/samba/smbusers, and /etc/samba/smbpasswd

Reply

50 John Wood April 1, 2010

I was getting a “-” file created in /root/move when trying to get the shadow.mig, but I’m not now, and I’m not sure what I did!

If anyone does get the “-” file, add some spaces around the “tee” command and try again… That’s what I did and it went away!

Reply

51 John Wood April 1, 2010

no, wait, I wasn’t looking in the current directory – I actually don’t get rid of the “-” file…

Reply

52 Lukas Johansson August 17, 2010

Thanks for this guide, managed to migrate a large webserver without any major problem thanks to you!

Reply

53 Embedded October 6, 2010

Thanks for a great guide.
I have small problem with it.

From some reason the tar commands don’t work under Red Hat Linux.
it did not manage to tar or untar the files.

Do you know how to skip existing files?
I tried -k flag but no success ;/

Reply

54 Ryan October 14, 2010

Everything worked great. All my users & machines show up in User Manager.

However I cannot logon as a user, only root. It says wrong password.

Reply

55 Tim November 29, 2010

In Ubuntu, I had a problem following these instructions. When the screensaver was locked, you couldn’t unlock the screen without going to “Switch User” and then put in the password there. In addition, half of the time your gdm session would immediately crash and you’d have to log in from scratch again.

The problem was that the “shadow” user wasn’t able to read the /etc/shadow and /etc/gshadow files. The /etc/shadow and the /etc/gshadow files need to be chown’d to root:shadow, and chmod’d to 640 like this:

# chown root:shadow /etc/shadow
# chown root:shadow /etc/gshadow
# chmod 640 /etc/shadow /etc/gshadow

Reply

56 Irek May 13, 2011

I tried to move account details from SUSE to Fedora/RH and password is not working :(
I

Reply

57 Manojg August 1, 2011

I created account successfully, can login but login take time and gives error:
/usr/bin/xauth: timeout in locking authority file /home/testuser/.Xauthority

Any help?

Reply

58 kaleeswari August 18, 2011

how to create the another root user and how to change the root ?

Reply

59 kaleeswari August 18, 2011

how to transfer the files from one root to another root user in same system using ubunto or fedora?

Reply

60 Chris September 26, 2011

This worked perfect for me migrating users from an old FC3 box to a new Ubuntu 10.04 LTS one. I did run into a problem when I tried to do it a second time. The instructions as they are will result in duplicate entries in the /etc/passwd file. If you want to do this more than once, the *.mig files will need some manual massaging before catting into the destination passwd file. (This may go without saying for most of you, but for me it wasn’t something I thought of ahead of time). I was able to clean it up, but it was a pain.

Reply

61 Frank Wang October 12, 2011

For the /etc/shadow file, better use following to prevent ambiguous match, say a local account named db will also match system account dbus
# awk -v LIMIT=$UGIDLIMIT -F: ‘($3>=LIMIT) && ($3!=65534) {print $1}’ /etc/passwd | sed -r -e ‘s/(.*)/^\1:/’ | egrep -f – /etc/shadow > /root/move/shadow.mig

Reply

62 Paul December 11, 2011

It worked perfect from FC 11 to FC 15. Btw, may I add the fact that the host keys must be imported/ecported also. Reason: it is possible to have some users which are using their accounts (SFTP) with the help of an automaitc SFTP client. IN order to keep everything transparent for them, the host keys of the machine must be imported/exported (etc/ssh).
Maybe is better to test it and include it in this tutorial. Btw, the a lot for doing this.

Have a nice weekend.

Paul

Reply

63 Montaser Islam December 12, 2011

cool post;
it save a lot of time man.

Reply

Leave a Comment

You can use these HTML tags and attributes for your code and commands: <strong> <em> <ol> <li> <u> <ul> <blockquote> <pre> <a href="" title="">
What is 12 + 10 ?
Please leave these two fields as-is:
IMPORTANT! To be able to proceed, you need to solve the simple math so we know that you are a human and not a script.




Previous post:

Next post: