我使用创建了一个没有主目录的用户useradd -M Alice
并设置了密码。现在当我登录时,我收到此消息
No directory /home/Alice! Logging in with home= "/"
-bash-4.1$
谁能解释最后一行的含义并解决这个问题?
答案1
我认为你可以这样解决:
mkdir /home/Alice
chown -R Alice:Alice /home/Alice
如果您使用 adduser 而不是 useradd 则更好,该目录将自动创建。
答案2
标志-M
表示useradd
“不创建用户的主目录”,因此程序已完成您所要求的操作。
您可以通过为 Alice 创建主目录并复制模板文件来解决该问题:
home=$(getent passwd Alice | cut -d: -f6)
uid=$(getent passwd Alice | cut -d: -f3)
gid=$(getent passwd Alice | cut -d: -f4)
mkdir -m755 "$home"
cp -a /etc/skel/. "$home"
chown -R $uid:$gid "$home"
答案3
Logging in with home= "/"
意思就是它所说的。由于用户没有主目录,因此登录使用了根目录“/”
这-bash-4.1$
是默认的 bash 提示符。当没有~/.bashrc
或没有其他默认 bash 文件时,您会看到这一点。它们通常在用户的主目录中创建、存储和更新。
使用“/”作为主目录会导致其他问题,因为用户 Alice 很可能没有写入文件系统根目录的权限。 :-)
正如 roaima 和 Luciano Andress Martini 所写,您可以通过创建主目录来解决此问题。