如何更改当前登录用户的主目录

如何更改当前登录用户的主目录

我当前已登录 CentOS 服务器,我想将我的主目录从 更改/home/myuserName//var/www/html/

我尝试了以下命令:

> sudo usermod -d /var/www/html myuserName

但这给了我一个错误:

usermod: user myUserName is currently logged in

答案1

简短的回答: 你不能。

长答案:

HOME目录设置在/etc/passwd第 6 个字段中。登录时读取;你的 shell 是从此主目录启动的。

更改 joe 主目录的正确方法是:

  • 让乔注销。
  • 用于usermod -d /new/home joe 更改后续会话的主目录。

会话运行后,您必须执行两件事:

  • 编辑$HOME以更改会话的主目录(在所有活动会话上重复)。
  • 用于sudo vipw编辑下一个会话的主目录

另外,请注意您可能会遇到权限/所有权问题/var/www/html

答案2

您需要编辑该/etc/passwd文件以更改当前登录用户的主目录。

编辑并更改用户的主目录/etc/passwdsudo vipw

vipw强烈推荐除vim其他编辑器之外的其他编辑器,因为vipw将设置锁定以防止任何数据损坏。

答案3

如果您使用尝试进行更改的用户登录,则 usermod 命令将不起作用。

usermod 的手册页上写着:

注意事项 usermod 不允许您更改已登录用户的名称。如果要更改用户的数字用户 ID,则必须确保在执行此命令时指定的用户没有执行任何进程。您必须手动更改任何 crontab 文件的所有者。您必须手动更改任何 at 作业的所有者。您必须在 NIS 服务器上进行涉及 NIS 的任何更改。

尝试使用其他用户登录并再次运行该命令。

如果这不可能,那么您可以手动编辑 /etc/passwd 文件(这实际上是 usermod 命令正在执行的操作)。如果您这样做,请确保备份该文件,以防您无意中做了一些愚蠢的事情。

答案4

您只能暂时执行此操作。这意味着每次您以该用户身份登录时,都必须运行以下命令:

export HOME=/var/www/html

这样,您就可以制作大多数应用程序思考您的主目录是您上面使用的任何位置。

~也会开始指向/var/www/html

我使用的应用程序是 NPM 和 Maven。

相关内容