[CentOS] How to relocate $HOME directory

Mon Jan 31 14:44:39 UTC 2011
Jerry McAllister <jerrymc at msu.edu>

On Mon, Jan 31, 2011 at 06:07:27AM +0900, Soo-Hyun Choi wrote:

> Hi there,
> As you know, $HOME is generally located at "/home/$username" by default.
> I would like to re-locate all users' $HOME directories to something like
> "/export/home/$username" without having a hassle/trouble.
> Initially, I've thought of just copying them to the new directory (under
> /export/home/xxx), but guessed it might trouble for the normal use (I'm
> pretty new to CentOS, although many experiences with Debian/Ubuntu).
> Is there any good tricks (or caveats) when moving users' home directory
> cleanly with CentOS? (I'm with CentOS 5.5 x86_64)

It depends on if /export is in the same file system as /home currently is.
If the file systems are different, then make the new '/export' space.  
Then use a tar-to-tar to copy the old home to the new place.   

First, create the new directory situation.

If the file systems are different

  mount /export     (or whatever you have to do to create the new one)
  cd /export
  tar -cpf - /home | tar xpf -

If it is the same file system, just do:

  mkdir /export    (or whatever it takes to create the new one)
  mv /home /export/.   

(NOTE: Some versions of mv(1) (FreeBSD for example) will actually do a cp(1)
 for you if they are not in the same file system so you can cheat a little)

Next you would have to modify each user's entry in the /etc/passwd
file  to be  /export/home/userid
rather than /home/userid

you can use vipw(8) to insert the export/ string in between the first '/'
and 'home'    eg search for home and then insert 'export/'
By the way, I'd suggest not using the name /export.  It gets used 
in too many places to mean specific things and it could get confusing
some time later.  Pick some other name.


> Cheers,
> Soo-Hyun
> _______________________________________________
> CentOS mailing list
> CentOS at centos.org
> http://lists.centos.org/mailman/listinfo/centos