我正在尝试了解 Ubuntu 上的系统管理。因此,作为示例,我使用以下命令创建一个虚拟用户
sudo useradd -d /home/linda linda
并passwd
创建密码。我检查是否已使用cat /etc/passwd
linda:x:1004:1004::/home/linda:/bin/sh
然而,当su - linda
我
No directory, logging in with HOME=/
确实没有创建主目录。我遗漏了什么?
谢谢。
答案1
man useradd
状态:
useradd is a low level utility for adding users. On Debian,
administrators should usually use adduser(8) instead.
注意低级实用程序
要添加用户,请使用adduser
。这是一个更高级的实用程序。
此外,看一下这个-d
选项:
-d, --home HOME_DIR
The new user will be created using HOME_DIR as the value for the
user's login directory. The default is to append the LOGIN name to
BASE_DIR and use that as the login directory name. The directory
HOME_DIR does not have to exist but will not be created if it is
missing.
如果缺少该目录,则不会创建该目录。
一般情况下,远离useradd
,改用adduser
。
答案2
您只需创建主目录即可解决此问题。
mkdir /home/linda
chown linda:linda /home/linda
尝试再次登录,这样就应该可以了。
答案3
根据man useradd
,如果缺少该目录,-d /home/linda
选项将不会创建目录/home/linda
。因此,您必须手动创建它。为此,请在终端中运行以下命令:
sudo -i #to get root privileges
mkdir /home/linda #to create the directory /home/linda
cp -rT /etc/skel /home/linda #to populate /home/linda with default files and folders
chown -R linda:linda /home/linda #to change the owner of /home/linda to user linda
也可以看看:创建账户后如何创建用户主文件夹?
答案4
使用-m
而不是-d
,这样将为您创建目录:
sudo useradd -m linda
此外,如果linda
是普通用户,您可能希望她使用/bin/bash
默认设置shell
:
sudo useradd -m linda -s /bin/bash