11

I am using 12.04 on my server.

I created a new user using adduser me and passwd me and added it to sudo.

When I log in this is what I see.

Could not chdir to home directory /home/me: No such file or directory    
$

I type bash and it begins to look "normal"

$ bash
me@server:/$

How can I avoid typing bash every time I login?

  • 2
    how did you create the new user? – MattDMo Jan 6 '14 at 21:50
  • 2
    that answer is not at all related to this question and does not help me. – ddd Jan 6 '14 at 21:53
  • What command you used to create the user? Also add to your question the output of cat /etc/passwd. – Braiam Jan 6 '14 at 21:54
  • adduser me, passwd me – ddd Jan 6 '14 at 21:55
  • 2
    Please add the output of getent passwd $USER to your question – Florian Diesch Jan 6 '14 at 21:56
20

adduser is too basic and doesn't set the defaults properly. It's recommended to use useradd whenever is possible. You can remove the new user and create it again with useradd -D me or repair it yourself:

sudo mkdir /home/me
sudo usermod --shell /bin/bash --home /home/me me
sudo chown -R me:me /home/me
cp /etc/skel/.* /home/me/

If you had used getent passwd me as Florian suggested you should have seen something like this:

sudo getent passwd me
boggus:x:1002:1002::/home/me:/bin/sh

And ls /home wouldn't shown the user directory as your error:

Could not chdir to home directory /home/me: No such file or directory
  • however at the last step I get cp: cannot stat /etc/skel/*': No such file or directory` what does this do? – ddd Jan 6 '14 at 22:06
  • when I do useradd -D me it just outputs list of arguments. I have ran userdel me before – ddd Jan 6 '14 at 22:14
  • Please, edit your question and add the output of apt-cache policy passwd. – Braiam Jan 6 '14 at 22:15
  • @ddd also, you sure is user then add not add then user? Please use copy paste to be sure. – Braiam Jan 6 '14 at 22:16
  • 2
    @ddd but then tell what went wrong... edit your question and add the information... – Braiam Jan 6 '14 at 23:46
2

You can set the user home directory with usermod -d _homedir_ username command.

For example:

usermod -d / sudouser

sets the homedir of sudouser to the root directory.

However, root directory is not a good choice here, especially if you login with the user to an interactive shell. Shells might create their own files when you are logging in, and any extra files in root level is not a good thing.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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