Ubuntu 24.04 用户管理指南:添加、删除与权限配置

本指南详细介绍了在 Ubuntu 24.04 系统上进行用户管理的关键操作,包括如何安全地添加新用户、授予或撤销 sudo(管理员)权限、删除不再需要的用户及其文件,以及如何临时锁定用户账户。通过本文,您将掌握高效且安全的 Linux 用户管理技巧。

阅读时长: 7 分钟
共 3422字
作者: eimoon.com

简介

在 Linux 系统管理中,用户管理是核心任务之一。新部署的系统通常默认只提供 root 账户的访问权限。虽然 root 用户拥有对系统的完全控制权,但这伴随着巨大的风险。在日常系统管理中,直接使用 root 账户执行任务可能导致意外的破坏。

为了提升系统安全性并实现权限分离,最佳实践是创建一个非特权用户(non-privileged user),并仅在需要管理员权限时才通过 sudo 工具提升权限。sudo 允许用户以另一个用户的身份运行命令,通常是 root 用户。此外,为系统上的每个使用者分配独立的账户,有助于更好地追踪操作日志并细化权限。

本指南将详细讲解如何在 Ubuntu 24.04 系统上创建用户账户、授予 sudo 权限以及删除用户,确保您的系统管理既高效又安全。

前提条件

完成本教程,您需要一台运行 Ubuntu 24.04 的服务器。请确保您拥有服务器的 root 访问权限,并且已启用防火墙以保障系统安全。

添加用户

在 Ubuntu 系统中,添加新用户主要通过 adduser 命令实现。

如果您当前以 root 用户身份登录,可以直接运行以下命令创建新用户:

adduser <新用户>

如果您是以拥有 sudo 权限的非 root 用户身份登录,则需要在命令前加上 sudo

sudo adduser <新用户>

无论您使用哪种方式,系统都会引导您完成一系列配置步骤:

  1. 分配并确认密码:为新用户设置登录密码,并再次输入以确认。
  2. 输入额外信息:系统会提示您输入新用户的全名、房间号、电话等信息。这些信息是可选的,您可以直接按 ENTER 跳过。
  3. 确认信息:最后,系统会要求您确认所提供的信息是否正确。输入 Y 并按 ENTER 键以继续创建用户。

至此,您的新用户账户已成功创建,可以使用您设置的密码进行登录。如果新用户需要执行管理员级别的任务,请继续阅读下一节以授予其 sudo 权限。

授予用户 Sudo 权限

如果新用户需要执行需要 root(管理员)权限的命令,您必须授予其 sudo 访问权限。在 Ubuntu 20.04 系统上,有两种主要方法可以实现此目的。

方法一:将新用户添加到 Sudo 组

在 Ubuntu 系统中,sudo 默认配置为向 sudo 组中的任何用户授予完全权限。这是最常用且推荐的方法。

您可以首先使用 groups 命令查看新用户当前所属的组:

groups <新用户>

默认情况下,通过 adduser 命令创建的用户只会属于其自己的同名主组。要将用户添加到 sudo 组,可以使用 usermod 命令:

usermod -aG sudo <新用户>

上述命令中的 -aG 选项表示将用户追加(-a)到指定的附加组(-G)中。

请注意,usermod 命令本身需要 sudo 权限。这意味着您必须以 root 用户身份登录,或者以已属于 sudo 组的另一个用户身份登录来执行此操作。在后一种情况下,命令需要加上 sudo 前缀:

sudo usermod -aG sudo <新用户>

完成此操作后,新用户在下次登录时即可拥有 sudo 权限。

方法二:在 /etc/sudoers 中指定显式用户权限

除了将用户添加到 sudo 组之外,您还可以通过编辑 /etc/sudoers 配置文件来显式指定每个用户的权限。推荐使用 visudo 命令来编辑此文件,因为它会提供文件锁定机制,并会在保存前进行语法检查,从而防止因配置错误导致 sudo 权限丢失。

如果您当前以 root 用户身份登录,请运行:

visudo

如果您是以具有 sudo 权限的非 root 用户身份登录,则使用 sudo 前缀运行相同的命令:

sudo visudo

在打开的文件中,找到类似于下面的一行:

root    ALL=(ALL:ALL) ALL

在此行下方添加以下内容。请务必将 <newuser> 替换为您要授予 sudo 权限的实际用户名:

root    ALL=(ALL:ALL) ALL
<newuser> ALL=(ALL:ALL) ALL

为每个需要完全 sudo 权限的用户添加这样一行。完成后,按 CTRL + X,然后按 Y,再按 ENTER 键以确认并保存文件。

测试用户 Sudo 权限

现在您的新用户应该能够以管理员权限执行命令了。

当以新用户身份登录时,执行普通命令的方式如下:

some_command

要以管理员权限执行相同的命令,只需在命令前加上 sudo

sudo some_command

执行 sudo 命令时,系统会提示您输入当前登录的非 root 用户账户的密码。这是 sudo 的安全机制,确保只有合法用户才能提升权限。

删除用户

当一个用户账户不再需要时,出于安全和系统整洁的考虑,最好将其删除。

您可以选择只删除用户账户本身,而不删除其任何文件。作为 root 用户运行:

deluser <新用户>

如果您以具有 sudo 权限的非 root 用户身份登录,则使用以下命令:

sudo deluser <新用户>

相反,如果您希望在删除用户账户的同时,也删除其主目录及其中的所有文件,可以以 root 用户身份使用 --remove-home 选项:

deluser --remove-home <新用户>

如果您以具有 sudo 权限的非 root 用户身份运行此命令,则同样需要加上 sudo 前缀:

sudo deluser --remove-home <新用户>

清理 /etc/sudoers 中的条目(如果手动添加)

如果您之前通过手动编辑 /etc/sudoers 文件为已删除用户配置了 sudo 权限,请务必再次编辑该文件并删除相关行,以防止意外的权限问题:

visudo

或者,如果您是具有 sudo 权限的非 root 用户,请使用:

sudo visudo

找到并删除类似以下内容的行(例如,假设 newuser 是已删除的用户):

root    ALL=(ALL:ALL) ALL
newuser ALL=(ALL:ALL) ALL   # 删除此行

这将确保即使未来有同名用户被创建,也不会意外地获得 sudo 权限。

删除用户组(可选)

如果某个用户组主要是为已删除的用户而设,并且没有其他用户是该组的成员,您可以使用 delgroup 命令将其删除:

sudo delgroup <组名>

锁定用户而非删除

在某些情况下,您可能希望暂时禁用用户账户,而不是永久删除它。锁定用户账户通常意味着使其无法登录,但不会删除其主目录、文件或用户 ID,方便后续重新启用。

锁定密码

您可以“锁定”用户的密码,这将阻止他们使用其账户密码进行身份验证。这是禁用用户登录的一种常见且有效的方法。如果您以 root 身份登录,可以使用以下命令执行此操作:

passwd -l <用户名>

如果您以具有 sudo 权限的非 root 用户身份登录,可以使用以下命令:

sudo passwd -l <用户名>

-l 选项通过在 /etc/shadow 文件中加密密码前加上 !* 字符来使原始密码无效。

要解锁用户的密码并允许他们再次使用原始密码登录,请运行:

passwd -u <用户名>

如果您以具有 sudo 权限的非 root 用户身份登录,可以使用以下命令:

sudo passwd -u <用户名>

-u 选项将密码恢复到锁定前的原始值。

禁用账户(无登录 Shell)

另一种禁用用户登录的方法是将用户的默认登录 shell 更改为不存在或为空的 shell,例如 /usr/sbin/nologin/bin/false。这可以防止用户在登录时建立交互式 shell 会话。

要将用户的 shell 更改为 /usr/sbin/nologin

sudo usermod -s /usr/sbin/nologin <用户名>

要将 shell 恢复到其原始值(例如,/bin/bash),请运行:

sudo usermod -s /bin/bash <用户名>

常见问题

1. adduseruseradd 有什么区别?

adduser 是一个高级的、用户友好的脚本,它简化了创建新用户账户的过程。它会交互式地提示您输入信息,自动创建用户主目录,复制骨架文件(如 .bashrc.profile),设置适当的权限,并分配一个默认 shell。在大多数情况下,它是 Debian 类系统(如 Ubuntu)上创建用户的推荐命令。

useradd 是一个低级的二进制命令,它提供了对用户创建的更精细控制。它默认不创建主目录或复制骨架文件,需要通过选项显式指定或手动处理这些内容。useradd 通常用于脚本或自动化系统管理中,需要精确控制和非交互式操作。

2. 如何在 Ubuntu 中授予用户 sudo 权限?

在 Ubuntu 上授予用户 sudo 权限最常见且推荐的方法是将其添加到 sudo 组。此组的成员通常被配置为能够以 root 权限执行命令。

您可以使用 usermod 命令将现有用户添加到 sudo 组:

sudo usermod -aG sudo <用户名>

<用户名> 替换为实际的用户名称。-a 标志表示“追加”,-G 指定辅助组。更改通常在用户下次登录时生效。

3. 删除用户会同时删除其文件吗?

默认情况下,Ubuntu 中的 deluser 命令(不带特定选项)会删除用户账户,但会保留其主目录和邮件假脱机。

要与账户一起删除用户的主目录和邮件假脱机,您应该使用 --remove-home 选项:

sudo deluser --remove-home <用户名>

如果您希望在删除用户的主目录之前创建备份,可以使用 --backup-home 选项:

sudo deluser --backup-home <用户名>

4. 我可以恢复已删除的用户吗?

在 Linux 中,通常无法通过单个命令直接“恢复”已删除的用户账户。一旦用户账户被删除,其条目就会从 /etc/passwd/etc/shadow/etc/group 等系统文件中删除。

但是,数据恢复的可能性取决于用户是如何被删除的。如果只删除了账户(例如,deluser 命令不带 --remove-home),用户的主目录和文件仍然存在于系统上。在这种情况下,您可以以相同的用户名重新创建用户,如果可能的话,使用相同的用户 ID (UID) 和组 ID (GID),然后将其新主目录指向旧的主目录。这使得他们可以重新访问其原始文件。

结论

您现在应该已经很好地掌握了如何在 Ubuntu 24.04 系统上添加和删除用户,以及如何管理 sudo 权限、删除用户组和锁定用户账户。有效的用户管理对于维护 Ubuntu 系统的安全性、组织性和完整性至关重要。您今天学到的技能将使您能够分离用户权限,并仅向他们授予完成工作所需的最低访问权限,从而提升系统整体的健壮性与安全性。

关于

关注我获取更多资讯

公众号
📢 公众号
个人号
💬 个人号
使用 Hugo 构建
主题 StackJimmy 设计