添加不带主目录的用户

添加不带主目录的用户

我使用创建了一个没有主目录的用户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 所写,您可以通过创建主目录来解决此问题。

相关内容