LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (https://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   to change the home directory of a user by using usermod (https://www.linuxquestions.org/questions/linux-newbie-8/to-change-the-home-directory-of-a-user-by-using-usermod-4175442705/)

nerdy1 12-23-2012 02:20 PM

to change the home directory of a user by using usermod
 
i want to change the
linus(/home/linus)
to
linus(/home/linus/gnu/linux)

i tried the following commands to do it:
#useradd linus
#mkdir -pv /home/linus/gnu
#usermod -d /home/linus/gnu/linux -m linus

but its not creating the user in the specified location
after logging iinto the user and using the "pwd" command it shows "/"
directory instead of "/home/linus/gnu/linux"

eSelix 12-23-2012 03:44 PM

Does directory "/home/linus/gnu/linux" exists and have "rx" permission for owner and owner is "linus"?

nerdy1 12-23-2012 03:59 PM

The directory "/home/linus/gnu" exists and have the "rwx" permission. The ownership belongs to "linus".

shivaa 12-23-2012 09:17 PM

As you said, you want to change user's home from /home/linus to /home/linus/gnu/linux, which means /home/linus exists and is user's home directory. But when you switch to user it gives you "/", which is root's home directory.
So once check /etc/passwd file entry for the user linus, as:
Code:

grep linus /etc/passwd
And check what's mentioned there?

nerdy1 12-24-2012 02:37 AM

"linus:x:1001:100::/home/linus:/bin/bash"

This is when the home directory is "/home/linus". And when i change the home directory by the "usermod" command to "/home/linus/gnu/linux" the "grep linus /etc/passwd" gives this output

"linus:x:1001:100::/home/linus/gnu/linux:/bin/bash".

and i get the "/" home directory in the user login after i have done this changes to the user. when my home directory is "/home/linus" i don't experience any problem but as soon as i change the home directory, the user's login shows "/" for "pwd" command

eSelix 12-24-2012 04:37 PM

Yes, but I ask about "/home/linus/gnu/linux", check also all parent directories if user linus has "x" permission for it. It need to traverse these directories. You can use "su linus" as root and check if you can do "cd /home/linus/gnu/linux".

shivaa 12-24-2012 09:50 PM

This seem some problem with user's profile. Somewhere
Code:

cd /
is set in user's shell initializations file, so when you switch to that user's account, then instead of /home/linus/gnu/linux, it loads "/" directory.
Once check:
Code:

grep "cd" .bashrc .profile
OR
grep "cd /" .bashrc .profile

(You will need to do some work to find out this entry). If you find any entry, just edit the corresponding file, and put a "#" against it to stop your shell reading it.

eSelix 12-25-2012 09:25 AM

It could be, but more probably is that user linus cannot switch to his home directory. Then "/" is default.


All times are GMT -5. The time now is 01:14 PM.