更改根目录的位置

Kev*_* S. 10 linux user-accounts home-directory

我想将 root 的主目录的位置从 /root 更改为 /var/root。我曾经能够使用 usermod 做到这一点:

usermod -d /var/root root
Run Code Online (Sandbox Code Playgroud)

但是,使用最新版本的 usermod,您无法更改当前登录用户的目录。我试图在第一次启动系统时运行的系统设置脚本中在启动时更改 root 的主目录,所以我不能真正成为任何其他用户。

是否有另一种方法可以更改当前登录用户(在这种情况下为 root)的主目录?

我可能可以 sed /etc/passwd,但这似乎很草率。

hai*_*img 11

  1. 手动编辑的唯一问题/etc/passwd是,如果其他用户或程序在您在编辑器中保持打开状态时更改了该文件,则可能会发生竞争。在这种情况下,保存文件时该更改将丢失。如果您确定此问题不适用于您(没有其他用户登录等),那么您可以继续编辑/etc/passwd

  2. 确保在引导到单用户模式时根的主目录可用,例如它应该在根文件系统上。

  3. 使用 uid 0 创建辅助用户、切换到它以及更改 root 的主目录等各种技巧都不起作用。对当前登录用户的检查是基于 uid 的。

  • 使用`vipw` 或`sudoedit` 可以防止#1。至于#2,缺少主目录通常只会导致警告。 (5认同)