为什么创建新用户时没有创建主目录?

Beg*_*ner 26 users useradd

我在useraddUbuntu 服务器虚拟机上使用该命令创建了一个新用户 (testuser) 。我想为用户创建一个主目录,并为他们提供根权限。

但是,当我以新用户身份登录时,它抱怨没有主目录。我究竟做错了什么?

Beg*_*ner 33

最后我找到了如何自己做到这一点:

   useradd -m -d /home/testuser/ -s /bin/bash -G sudo testuser
Run Code Online (Sandbox Code Playgroud)

-m如果主目录不存在,则创建主目录。
-d覆盖默认主目录位置。 -s为用户设置登录shell。
-G期望用户应该属于的以逗号分隔的组列表。

详情请参阅man useradd

  • `-m` 创建主目录,如果它不存在。`-d` 覆盖默认的主目录位置。`-s` 为用户设置登录 shell。`-G` 需要一个逗号分隔的用户应该属于的组列表。 (2认同)

ter*_*don 29

useradd程序已被弃用,以支持adduser. 来自man useradd

useradd 是用于添加用户的低级实用程序。在 Debian 上,
管理员通常应该使用 adduser(8) 代替

adduser是一个更友好的前端,useradd并且会在默认情况下执行诸如创建用户目录之类的操作。当您仅使用用户名作为参数运行它时,系统会提示您提供其他信息,例如密码:

$ sudo adduser testuser
Adding user `testuser' ...
Adding new group `testuser' (1002) ...
Adding new user `testuser' (1002) with group `testuser' ...
Creating home directory `/home/testuser' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
Changing the user information for testuser
Enter the new value, or press ENTER for the default
    Full Name []: 
    Room Number []: 
    Work Phone []: 
    Home Phone []: 
    Other []: 
Is the information correct? [Y/n] 
Run Code Online (Sandbox Code Playgroud)

通常,您应该始终使用adduser代替,useradd因为这也会自动设置所需的组。如中所述man adduser

   adduser  and  addgroup  add users and groups to the system according to
   command    line    options    and    configuration    information    in
   /etc/adduser.conf.   They  are  friendlier  front ends to the low level
   tools like useradd, groupadd and usermod programs, by default  choosing
   Debian  policy conformant UID and GID values, creating a home directory
   with skeletal configuration, running a custom script,  and  other  fea?
   tures. 
Run Code Online (Sandbox Code Playgroud)

  • @rajcoumar 嗯,为什么?这是完成这项工作的正确工具。如果您坚持使用错误的工具,您将不得不手动创建主目录和用户组,并从`/etc/skel` 等复制默认文件,这就是为什么要使用Official Debian Way® `添加用户`。 (5认同)
  • adduser 是 useradd 的交互式包装器 - 它不适用于脚本化解决方案,尤其是 dockerfiles。 (5认同)

Niz*_*med 6

useradd -m LOGIN
Run Code Online (Sandbox Code Playgroud)

创建用户的主目录