菜鸟科技网

linux增加用户命令

核心命令:useradd vs adduser

useradd - 命令行工具(推荐)

useradd 是一个底层的、功能强大的命令行工具,在所有 Linux 发行版上都能找到,它不会进行交互式提示,所有参数都需要在命令中明确指定。

linux增加用户命令-图1
(图片来源网络,侵删)

基本语法:

sudo useradd [选项] 用户名

常用选项:

选项 全称 描述
-m --create-home 非常重要! 创建用户的主目录,通常是 /home/用户名,如果不加此选项,系统可能不会创建主目录。
-s --shell 指定用户的默认登录 Shell。/bin/bash/bin/zsh,默认通常是 /bin/sh
-d --home 指定用户的主目录路径,默认为 /home/用户名,使用 -d 时,通常也建议加上 -m
-G --groups 将用户添加到一个或多个附加组(Secondary Groups),组名之间用逗号分隔。
-c --comment 添加用户的注释信息,通常是用户的真实姓名。
-p --password 直接设置用户的密码。注意: 这不安全,因为密码会以明文形式出现在命令历史和进程列表中,推荐使用 passwd 命令来设置密码。
-r --system 创建一个系统用户,系统用户通常没有主目录,UID/GID 较低,并且不用于登录。

示例:

  • 创建一个普通用户 testuser,并创建其主目录:

    linux增加用户命令-图2
    (图片来源网络,侵删)
    sudo useradd -m testuser
  • 创建一个用户 devuser,指定 Shell 为 /bin/bash,并添加注释:

    sudo useradd -m -s /bin/bash -c "Developer User" devuser
  • 创建一个用户 opsuser,并将其加入到 sudodocker 组:

    sudo useradd -m -G sudo,docker opsuser
  • 创建一个系统用户 nobody(通常已存在):

    sudo useradd -r -s /sbin/nologin nobody

adduser - 交互式脚本(Debian/Ubuntu 等系统)

adduser 是一个更友好的、交互式的脚本,主要用于 Debian、Ubuntu 及其衍生版(如 Mint),在 CentOS/RHEL 等发行版中,adduser 通常只是 useradd 的一个软链接。

linux增加用户命令-图3
(图片来源网络,侵删)

当你在 Debian/Ubuntu 系统上运行 adduser 时,它会:

  1. 提示你输入用户密码。
  2. 提示你输入用户信息(全名、房间号、电话等),可以留空直接按回车。
  3. 询问是否确认创建信息。

基本语法:

sudo adduser 用户名

示例:

创建一个名为 newuser 的用户:

sudo adduser newuser

执行后会看到类似下面的交互过程:

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] Y

优点:

  • 简单易用,适合初学者。
  • 自动处理主目录创建和密码设置。

缺点:

  • 不是所有 Linux 发行版都默认安装或行为一致。
  • 功能不如 useradd 灵活。

完整的用户管理流程

创建用户后,通常还需要执行以下步骤:

设置或修改用户密码

新创建的用户默认无法登录,因为没有设置密码,必须使用 passwd 命令来设置。

# 设置或修改 testuser 的密码
sudo passwd testuser

系统会提示你输入并确认新密码。

将用户添加到 sudo 组(如果需要该用户有管理员权限)

在 Ubuntu/Debian 系统中,将用户加入 sudo 组即可获得 sudo 权限。

# 将 testuser 添加到 sudo 组
sudo usermod -aG sudo testuser
  • usermod: 用于修改用户账户的属性。
  • -aG: -a 表示 append(追加),-G 表示指定组。-a 选项非常重要,否则用户会被从其他组中移除,只保留在 sudo 组。

在 CentOS/RHEL 系统中,组名通常是 wheel

sudo usermod -aG wheel testuser

切换用户身份验证

创建并设置好权限后,你可以切换到新用户账户进行测试。

# 切换到 testuser 用户
su - testuser
  • su (substitute user) 用于切换用户。
  • (短横线) 选项会模拟一个完整的登录 shell,加载用户的环境变量(如 .bashrc),推荐使用。

其他相关重要命令

命令 全称 描述
usermod modify user 修改已存在用户的属性,如用户名、主目录、所属组等。
userdel delete user 删除用户账户。
passwd password 修改用户密码,或锁定/解锁账户。
id identity 显示用户的 UID、GID 及所属的组。
groups groups 显示用户所属的所有组。
su substitute user 切换用户身份。
sudo superuser do 以其他用户(通常是 root)的身份执行命令。

总结与最佳实践

特性 useradd adduser
类型 底层命令 交互式脚本 (Debian/Ubuntu)
交互性 无,所有参数在命令行指定 有,会提示输入密码和用户信息
主目录 需要手动使用 -m 选项 自动创建主目录
适用性 所有 Linux 发行版 主要 Debian/Ubuntu 及其衍生版
灵活性 ,可精确控制所有选项 ,按预设流程执行

最佳实践建议:

  1. 首选 useradd:为了脚本的可移植性和精确控制,useradd 是更可靠的选择。
  2. 使用 -m 选项:创建普通用户时,务必加上 -m 来创建主目录。
  3. 单独设置密码:不要在 useradd 中使用 -p 选项,而是用 passwd 命令。
  4. 赋予 sudo 权限:如果新用户需要管理员权限,使用 usermod -aG sudo username 将其加入 sudo 组。
  5. 使用 adduser 进行快速创建:如果你在 Debian/Ubuntu 系统上,只是想快速创建一个可以登录的用户,adduser 是一个非常方便的选择。
分享:
扫描分享到社交APP
上一篇
下一篇