![如何更改 $HOME 目录](https://linux22.com/image/870482/%E5%A6%82%E4%BD%95%E6%9B%B4%E6%94%B9%20%24HOME%20%E7%9B%AE%E5%BD%95.png)
我的主文件夹(~
和$HOME
)指向/home/user
,我如何更改此目录?
我试过
HOME=/new/dir
但这仅在我启动一个新 shell 时才有效。
/etc/environment
我也尝试在、~/.profile
和中寻找定义,/etc/profile.d/
但没有HOME
在任何地方找到定义。
我也看了这里,但我对将它移动到单独的分区不感兴趣,我只是想更改它指向的目录。
答案1
HOME
通常来自用户输入/etc/passwd
。 您可以使用usermod
来更改此条目,但前提是您的用户未登录。因此,您需要:
- 设置 root 密码并从 TTY 以 root 身份登录,或者
- 启动到恢复模式(参见如何重置丢失的管理密码?请参阅示例指南)
无论哪种情况,一旦你有了 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 的内容将移动到新文件夹。