如何更改我的主目录?

如何更改我的主目录?

我目前有一个 /home/user/ 目录 ~ 但我想将其更改为 /user/home/

/user/home 已经存在。

使用选项usermod不起作用,因为我无法以 root 或其他用户身份访问系统。

我寻求的解决方案是修改一些 .bashrc 文件并更改一些环境变量或类似的东西。我通过 ssh 登录。

我正在运行 Ubuntu 14.04。

先感谢您

不幸的是,以下解决方案并不适用于我的情况:

如何更改我自己的主目录?

如何更改我的默认主目录

https://stackoverflow.com/questions/20797819/command-to-change-the-default-home-directory-of-a-user

编辑

我想在这里提供更多信息,而不是回复评论。

目前的文件夹结构比我上面的例子奇怪得多,但其要点是一样的。例如,目前当我这样做时:

user@local:~$ ssh user@host

我最终的结果如下:

user@host:~$ 
user@host:~$ pwd
/path/of/current/home/

所以当我使用类似的东西pip带有--user标签它将在本地安装东西。

因为存在一些内存限制以及ssh写入该位置的问题(一段时间后我无法再写入)我希望有以下行为:

user@local:~$ ssh user@host
user@host:~$ 
user@host:~$ pwd
/path/of/new/home/

/path/of/new/home/已经存在并且没有上面设置的限制。

答案1

好吧,您只需将这一行添加到您的~/.profile1中:

HOME=/user/home/

然而,这真的不是一个好主意。它可能导致的问题包括(但可能不限于):

  1. 仅当您的用户拥有它时,该功能才有效/home/user。如果不是,您甚至无法登录。

  2. 这只适用于您的用户。对于其他所有用户,您的主目录将是存储在 中的任何内容/etc/passwd。这意味着,例如,cd ~user将失败。换句话说,如果我以 身份登录bob并在 中bob有行,则认为他的主目录是,但其他人都不知道:HOME=/home/bob/foo~/.profilebob/home/bob/foo

     $ whoami
     bob
     $ echo $HOME
     /home/bob/foo
     $ cd ## this moves to your $HOME
     $ pwd
     /home/bob/foo
    

到目前为止一切顺利。但是:

    $ whoami
    terdon
    $ cd ~bob
    $ pwd
    /home/bob
  1. 这会让你的系统管理员抓狂。你不会想惹怒你的系统管理员,因为你很脆,加番茄酱吃起来很美味。

无论如何,乱用诸如 之类的变量通常不是一个好主意$HOME,因为它经常会产生意想不到的后果。相反,一个更干净的解决方案是确保每个新的 shell 会话都在目标目录中启动。只需将此行添加到~/.bashrc

cd /user/home/

现在,每次您登录2或打开终端时,您都会发现自己处于/user/home


1 或者~/.bash_profile如果它存在。

2无论如何,登录基于 Debian 的系统,如 Ubuntu。对于其他发行版/操作系统,您可能也需要将其添加到。请~/.profile参阅这里

相关内容