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.
    – Pere Tuset
    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?
    – Pere Tuset
    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
    – cas
    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).
    – cas
    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.
    – cas
    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.
    – Kusalananda
    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.

Not the answer you're looking for? Browse other questions tagged .