我想将 root 的主目录位置从 /root 更改为 /var/root。我以前可以使用 usermod 来执行此操作:
usermod -d /var/root root
但是,使用最新版本的 usermod,您无法更改当前登录用户的目录。我试图在系统首次启动时运行的系统设置脚本中在启动时更改 root 的主目录,因此我实际上不能是任何其他用户。
还有其他方法可以更改当前登录用户(在本例中为 root)的主目录吗?
我可能可以使用 sed /etc/passwd,但这似乎不太好。
答案1
手动编辑的唯一问题
/etc/passwd
是,如果其他用户或程序在你在编辑器中打开文件时更改了该文件,则可能会发生争用。在这种情况下,保存文件时该更改将丢失。如果你确定这个问题不适用于你(没有其他用户登录等),那么你可以继续编辑/etc/passwd
确保在启动到单用户模式时根目录的主目录可用,例如,它应该位于根文件系统上。
各种技巧(例如创建具有 uid 0 的次要用户、切换到该用户以及更改 root 的主目录)均不起作用。对当前登录用户的检查是基于 uid 的。