菜鸟科技网

Ubuntu命令添加用户具体怎么操作?

useradd vs adduser

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

Ubuntu命令添加用户具体怎么操作?-图1
(图片来源网络,侵删)
  1. useradd:

    • 这是一个底层的、命令行的工具。
    • 它的参数非常多,但功能相对基础,需要你手动指定所有选项(如创建家目录、设置密码、指定用户组等)。
    • 它的配置行为受到 /etc/login.defs/etc/default/useradd 文件的影响。
    • 适用于脚本自动化,因为它的行为非常确定。
  2. adduser:

    • 这是一个更友好的、交互式的脚本(通常由 debianubuntu 软件包提供)。
    • 如果你不带任何参数运行它,它会引导你一步步完成用户创建过程,包括设置密码、全名、电话号码等。
    • 它会自动创建用户的主目录,并从 /etc/skel/ 目录中复制默认的配置文件(如 .bashrc, .profile 等)。
    • 推荐在手动操作时使用,因为它更简单、更安全。

对于日常手动操作,请使用 adduser,对于需要精确控制或自动化的脚本,请使用 useradd


使用 adduser (推荐,最简单)

这是最简单、最安全、最推荐的方法,尤其适合初学者。

Ubuntu命令添加用户具体怎么操作?-图2
(图片来源网络,侵删)

打开终端

你可以使用 Ctrl+Alt+T 快捷键打开终端。

运行 adduser 命令

假设你要创建一个名为 newuser 的用户,只需在终端中输入:

sudo adduser newuser

注意: 你需要使用 sudo,因为创建用户需要管理员权限。

按照提示操作

命令运行后,终端会提示你输入以下信息:

Ubuntu命令添加用户具体怎么操作?-图3
(图片来源网络,侵删)
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 和用户相关的所有文件。

验证用户是否创建成功

你可以使用以下命令来验证用户是否已成功创建:

  1. 查看 /etc/passwd 文件 这个文件包含了所有用户账户信息,你可以用 grep 命令查找:

    grep newuser /etc/passwd

    如果成功,你会看到类似这样的输出: newuser:x:1001:1001::/home/newuser:/bin/bash

  2. 切换到新用户 尝试切换到新创建的用户,看看是否能成功:

    # 切换到 newuser
    su - newuser
    # 你会看到命令提示符变成了 newuser@hostname
    # 输入 exit 可以返回到原来的用户
    exit
  3. 检查用户所属的组 使用 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 上轻松管理用户!

分享:
扫描分享到社交APP
上一篇
下一篇