如何更改 $HOME 目录

如何更改 $HOME 目录

我的主文件夹(~$HOME)指向/home/user,我如何更改此目录?

我试过

HOME=/new/dir

但这仅在我启动一个新 shell 时才有效。

/etc/environment我也尝试在、~/.profile和中寻找定义,/etc/profile.d/但没有HOME在任何地方找到定义。

我也看了这里,但我对将它移动到单独的分区不感兴趣,我只是想更改它指向的目录。

答案1

HOME通常来自用户输入/etc/passwd。 您可以使用usermod来更改此条目,但前提是您的用户未登录。因此,您需要:

  1. 设置 root 密码并从 TTY 以 root 身份登录,或者
  2. 启动到恢复模式(参见如何重置丢失的管理密码?请参阅示例指南)

无论哪种情况,一旦你有了 root shell,请执行以下操作:

usermod --move-home --home /path/to/new/home your-username
chown your-username:$(id -gn your-username) /path/to/new/home -R

这会将您的主目录移动到新位置并确保正确的所有权(usermod命令应该这样做chown只是为了以防万一)。现在注销/重新启动并以您的用户身份登录。

答案2

/some/other/dir仅更改用户 USER 的主目录

sudo usermod --home /some/other/dir USER

您需要确保/some/other/dir确实存在且具有适当的权限。不会复制任何文件。

如果您想将旧主目录的内容移动到新主目录,您可以使用。

sudo usermod --move-home --home /some/other/dir USER

用新主文件夹的路径替换/some/other/dir。如果尚不存在,则会创建它。旧 $HOME 的内容将移动到新文件夹。

相关内容