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

Moh*_*han 27 linux users centos home

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

我尝试了以下命令:

> sudo usermod -d /var/www/html myuserName
Run Code Online (Sandbox Code Playgroud)

但这给了我一个错误:

usermod: user myUserName is currently logged in
Run Code Online (Sandbox Code Playgroud)

Arc*_*mar 20

简短的回答:你不能。

长答案

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

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

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

一旦会话运行,你必须做两件事:

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

另外,请注意,您可能在/var/www/html.

  • 编辑 /etc/passwd 总是对我有用。请参阅下面的@7171u (4认同)

小智 11

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

编辑/etc/passwdsudo vipw用户的和变化的主目录。

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


小智 9

如果您以尝试更改的用户身份登录,则 usermod 命令将不起作用。

从 usermod 的手册页它说:

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

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

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