useradd vs adduser
在开始之前,你需要了解两个命令的区别:

-
useradd:- 这是一个底层的、命令行的工具。
- 它的参数非常多,但功能相对基础,需要你手动指定所有选项(如创建家目录、设置密码、指定用户组等)。
- 它的配置行为受到
/etc/login.defs和/etc/default/useradd文件的影响。 - 适用于脚本自动化,因为它的行为非常确定。
-
adduser:- 这是一个更友好的、交互式的脚本(通常由
debian或ubuntu软件包提供)。 - 如果你不带任何参数运行它,它会引导你一步步完成用户创建过程,包括设置密码、全名、电话号码等。
- 它会自动创建用户的主目录,并从
/etc/skel/目录中复制默认的配置文件(如.bashrc,.profile等)。 - 推荐在手动操作时使用,因为它更简单、更安全。
- 这是一个更友好的、交互式的脚本(通常由
对于日常手动操作,请使用 adduser,对于需要精确控制或自动化的脚本,请使用 useradd。
使用 adduser (推荐,最简单)
这是最简单、最安全、最推荐的方法,尤其适合初学者。

打开终端
你可以使用 Ctrl+Alt+T 快捷键打开终端。
运行 adduser 命令
假设你要创建一个名为 newuser 的用户,只需在终端中输入:
sudo adduser newuser
注意: 你需要使用 sudo,因为创建用户需要管理员权限。
按照提示操作
命令运行后,终端会提示你输入以下信息:

Adding user `newuser' ...
Adding new group `newuser' (1001) ...
Adding new user `newuser' (1001) with group `newuser' ...
Creating home directory `/home/newuser' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for newuser
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]
- New password: 输入为新用户设置的密码,输入时字符不会显示,这是正常的安全特性。
- Retype new password: 再次输入密码以确认。
- Full Name, Room Number, etc.: 这些是可选信息,可以直接按
Enter键跳过。 - Is the information correct?: 确认信息无误后,输入
Y或直接按Enter键即可完成创建。
完成!newuser 用户现在已经创建好了,并且可以正常登录。
使用 useradd (更灵活,适合脚本)
如果你需要更精确地控制用户创建的每一个细节,可以使用 useradd。
基本语法
sudo useradd [选项] 用户名
常用选项
-m(非常重要): 自动创建用户的主目录/home/用户名,如果不加此选项,useradd不会创建家目录,用户将无法正常登录。-s /bin/bash: 指定用户的默认 Shell。/bin/bash是最常用的交互式 Shell,如果不指定,系统可能会给一个无法登录的 Shell(如/bin/false)。-G groupname: 将用户添加到一个附加用户组,要添加到sudo组以获得管理员权限。-c "comment": 添加用户的注释信息,通常是用户的全名。-d /home/custom_dir: 指定一个非默认的家目录路径。-p password: 直接设置密码。注意: 这种方法不安全,因为密码会以明文形式显示在命令历史和进程列表中。强烈建议不使用此方法,而是创建后用passwd命令设置。
实践示例
示例 1:创建一个标准用户
创建一个名为 devuser 的用户,并自动创建家目录和设置 Bash Shell。
sudo useradd -m -s /bin/bash devuser
创建完成后,用户还没有密码,需要用 passwd 命令来设置:
sudo passwd devuser
然后按照提示输入两次密码即可。
示例 2:创建用户并加入多个附加组
假设你想创建一个名为 webadmin 的用户,并让他同时属于 www-data (Web 服务器用户组) 和 sudo (管理员组)。
# 创建用户和家目录 sudo useradd -m -s /bin/bash webadmin # 将用户添加到 www-data 和 sudo 组 sudo usermod -aG www-data,sudo webadmin # 设置密码 sudo passwd webadmin
usermod用于修改用户属性。-aG是-a(append/追加) 和-G(groups/组) 的组合,表示追加到指定的组列表,而不是替换掉原有的附加组,这一点非常重要!
使用 userdel 删除用户
创建用户后,你可能还需要删除它,使用 userdel 命令。
删除用户,但保留其主目录
sudo userdel newuser
删除用户及其主目录和邮件 spool
这是最彻底的删除方式,通常推荐使用。
sudo userdel -r newuser
-r选项会删除用户的主目录/home/newuser和用户相关的所有文件。
验证用户是否创建成功
你可以使用以下命令来验证用户是否已成功创建:
-
查看
/etc/passwd文件 这个文件包含了所有用户账户信息,你可以用grep命令查找:grep newuser /etc/passwd
如果成功,你会看到类似这样的输出:
newuser:x:1001:1001::/home/newuser:/bin/bash -
切换到新用户 尝试切换到新创建的用户,看看是否能成功:
# 切换到 newuser su - newuser # 你会看到命令提示符变成了 newuser@hostname # 输入 exit 可以返回到原来的用户 exit
-
检查用户所属的组 使用
groups命令查看用户属于哪些组:groups newuser # 输出可能是 newuser : newuser
如果你想查看用户的所有组信息(包括主组和附加组),可以安装
libuser-utils包(sudo apt install libuser-utils)然后使用lid命令,或者直接查看/etc/group文件。
| 任务 | 推荐命令 | 描述 |
|---|---|---|
| 添加用户 (手动) | sudo adduser username |
最推荐,交互式,自动处理家目录和配置文件。 |
| 添加用户 (脚本) | sudo useradd -m -s /bin/bash username |
灵活,适合自动化,需要明确指定选项。 |
| 设置/修改密码 | sudo passwd username |
创建用户后必须执行的步骤。 |
| 添加用户到组 | sudo usermod -aG group1,group2 username |
将用户添加到附加组,-aG 是关键。 |
| 删除用户 | sudo userdel -r username |
-r 选项会同时删除用户主目录,推荐使用。 |
希望这份详细的指南能帮助你在 Ubuntu 上轻松管理用户!
