7

I have recently installed Raspbian into a Raspberry Pi. As part of the installation process I changed the user name and group from the default (pi) to my own (let's call it user) using usermod and groupmod. I also moved the home directory (/home/pi) to the new user name (/home/user) using usermod. Everything works fine except that when I login using SSH instead of landing the new user directory (/home/user) I end up at the home directory (/home). Any idea why this may be happening? Any solution? It's not a big deal but it is confusing me.

The directory /home/user exists with permissions 755. In addition to that the /etc/passwd file contains an entry that looks like the following:

user:x:1000:1000:User:/home/user:/bin/bash 

To me everything looks fine, but still when I login from ssh I get a prompt that looks like user@raspberrypi /home $.

4
  • You may have better luck with this question at the Raspberry Pi Stack Exchange. Commented Sep 8, 2012 at 10:35
  • 1
    @MichaelHampton Raspberry Pi tends to migrate questions purely about software to Unix & Linux, actually. I think this question would be considered off-topic on Raspberry Pi. Commented Sep 8, 2012 at 13:06
  • What's the content of your ~/.bash_profile, ~/.profile, ~/.bashrc (if they exist)? If you run ssh raspberrypi pwd and ssh raspberrypi 'echo ~', what does it show? Commented Sep 8, 2012 at 13:09
  • I tried both your commands and both return /home/user (where user is the actual username). The contents of the other files (they do exist) is the default that comes with Raspberry Pi. Commented Sep 8, 2012 at 13:11

3 Answers 3

4

did you use the -m option when you used usermod -d ?

if not, then you need to actually move the home directory as well as change the entry in /etc/passwd.

This will rename /home/pi to /home/user if /home/user does not already exist:

cd /home [ ! -e user ] && sudo mv pi user 

oterwise, check that user's home directory is actually /home/user and not just /home...here are some of the methods you can use to find out a user's home dir:

grep '^user:' /etc/passwd # works for system-local accounts only finger user # requires finger to be installed pinky -l user # part of GNU coreutils getent passwd user # should work no matter where the account data is stored 
5
  • 2
    The directory /home/user exists with permissions 755. In addition to that the /etc/passwd file contains an entry that looks like the following: user:x:1000:1000:User:/home/user:/bin/bash. To me everything looks fine, but still when I login from ssh I get a prompt that looks like user@raspberrypi /home $. Any further ideas? Commented Sep 8, 2012 at 12:15
  • very odd. have you checked your log file to see if there are any error/warning messages from sshd? try /var/log/messages, /var/log/syslog and/or /var/log/auth.log Commented Sep 8, 2012 at 22:41
  • also, what happens when you type cd and hit enter (it should take you to your home dir). Commented Sep 8, 2012 at 22:42
  • 1
    also, i just noticed that you said the prompt says ... /home $. did you check if that's correct? it might just be a problem with your prompt string, $PS1 . run pwd to print the current working directory name. Commented Sep 8, 2012 at 22:44
  • 4
    Also, what is the ownership of /home/user? Commented Sep 21, 2012 at 9:14
1

I'm having the same problem using Raspbian. After adding a user named "bill", raspbian failed to create the user's home directory. Although I had created the user account using "useradd bill && passwd bill", and although the /etc/passwd file contained the expected path to /home/bill as the home directory, the actual path "/home/bill" was never created. I had to manually create /home/bill as root, and then use chmod and chown to change the permissions and ownership to the right value. Now when I log on as "bill" using ssh, I end up in the "/" directory rather than in /home/bill. The /home/bill/.bashrc file does not do any trickery to change the directory from the default value of /home/bill.

It would appear that raspbian doesn't work the way that every other linux distribution works. This is clearly a BUG.

0

I'm seeing the same behavior in TrueNAS (FreeBSD).

  • Edited user in /etc/passwd to have homedir /path/newhome
  • Logged out of SSH, logged back in and received Could not chdir to home directory /path/oldhome
  • Was able to chdir /path/newhome without issue

This may need a system restart to take effect, but this isn't a system I can restart on a whim.

As a workaround, you can just run chdir /path/newhome after logging in. Crude, but effective.

2
  • What's chdir? This reads more like a comment than an answer, or possibly like a follow-up question. Commented May 17, 2021 at 16:36
  • I thought chdir could be used to (basically) change the path of ~ which would make it a viable work-around, but I was mistaken. I'm going to delete the reply as it is effectively a comment. Commented May 23, 2021 at 21:17

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.