I have a current /home/user/ directory for ~ but I want to change it to be at /user/home/
/user/home already exists.
The option of using usermod
is not going to work because I don't have access to the system as root or as another user.
I am asking for a solution along the lines of modifying some .bashrc file and changing some environment variable or smth similar. I log in via ssh.
I'm running Ubuntu 14.04.
Thank you in advance
Solutions like the ones below unfortunately aren't applicable to my case:
How to change my own home directory?
How to change my default home directory
https://stackoverflow.com/questions/20797819/command-to-change-the-default-home-directory-of-a-user
EDIT
I thought I'd give some more info here rather than respond to the comments.
Currently the folder structure is a lot stranger than my example above, but the jist of it is the same. Ie currently when I do:
user@local:~$ ssh user@host
I end up in:
user@host:~$
user@host:~$ pwd
/path/of/current/home/
so when I use things like pip
with the --user
tag it will install things locally.
Because there are some memory limitations as well as ssh
issues with writing to that location (after some time I can no longer write) I would like to have the following behaviour:
user@local:~$ ssh user@host
user@host:~$
user@host:~$ pwd
/path/of/new/home/
/path/of/new/home/
already exists and doesn't have the limitations set above.
Best Answer
Well, you could just add this line to your
~/.profile
1:However, that really isn't a good idea. Problems it would cause include (but are probably not limited to):
That will only work if
/home/user
is owned by your user. If it isn't, you won't even be able to log in.This will work for your user only. For everyone else, your home directory will be whatever is stored in
/etc/passwd
. This means that, for example,cd ~user
will fail. In other words, if I log in asbob
andbob
has the lineHOME=/home/bob/foo
in~/.profile
, thenbob
thinks that his home directory is/home/bob/foo
but nobody else knows that:So far so good. But:
In any case, it is rarely a good idea to mess with variables like
$HOME
, as it can often have unintended consequences. Instead, a much cleaner solution would be to make sure every new shell session starts in the target directory. Just add this line to your~/.bashrc
:Now, each time you log2 in or open a terminal, you will find yourself in
/user/home
.1 Or
~/.bash_profile
if it exists.2 Log in to Debian-based systems like Ubuntu, anyway. For other distributions/OSs, you might need to add it to
~/.profile
as well.See here.