1

After sudo command to change user, Tilde (~) not returning current user's home directory but returning previous login user's home directory. I needed to expand with echo ~USERNAME but I need to make echo ~ to keep compatibility existing apps.

user1@server1:-$ whoami
user1
user1@server1:-$ sudo -u user2 -s /bin/bash
user2@server1:-$ whoami
user2


user2@server1:- echo ~
/home/user1
user2@server1:-$ echo ~user2
/home/user2

2 Answers2

2

sudo does not necessarily change the home directory of the invoker. You need to use -H to ensure this

sudo -H -u user2 -s

Or

sudo -u user2 -i

See man sudo for details

roaima
  • 107,089
  • 14
  • 139
  • 261
0

sudo command doesn't set HOME environment variable. For this, we need to add set_home or always_set_home to sudoers file.