I added user with adduser user and then entered password with passwd password. When I su - user I got "No directory, logging in with HOME=/"

What's going on, how do I fix it?


Likely the home directory was not created along with the user. The easiest method would be using usermod:

usermod -dm /home/USER USER


  • -d -- Changes the home directory
  • -m -- Creates the home directory if does not exist
  • /home/USER -- where this is the full path to the new home directory.

So this does not happen in the future you should always use the ‘create home’ option with useradd: -m or --create-home. This will build out the new home directory using /etc/skel as the template.


Take a look at /etc/passwd and see what the users home dir is set to, it should be the 6th : seperated column

Use usermod to change his home dir:

$ usermod -d /home/user user
  • 1
    You probably meant to say /home/user, not ~/user. The former will point the user's home directory to /home/user, the second to a directory called user inside the homedirectory of the one who executes the command! – wzzrd Aug 6 '09 at 18:21
  • Oops, yup you're right. Fixed that :) – Robert Swisher Aug 6 '09 at 18:23

It is saying that the directory does not exist, check to make sure that /home/username exists. If it does not then run the following commands

mkdir /home/username
cp -r --preserve /etc/skel/* /home/username
chown -R username.username /home/username

This should create the directory for the user and stop the error you are seeing from showing up.


Maybe your version of adduser doesn't create the new home directory by default?


In future use the -m switch to useradd:

-m, --create-home create home directory for the new user

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.