在 Ubuntu 中切换和管理用户:图形界面、命令行、权限及最佳实践

目次

1. 介绍

什么是 Ubuntu 中的用户切换?

Ubuntu 是一个多用户 Linux 发行版,允许多个用户共享同一台电脑或服务器。因此,切换用户账户的能力 在个人环境、企业系统、教育设施和开发环境中被广泛使用。

通过切换用户,可以 在不影响其他用户的数据或设置的前提下维护各自的工作环境,从而实现安全高效的工作流。

在 Ubuntu 中何时需要切换用户?

在以下几种情形下,Ubuntu 的用户切换是必要的。下面列出了一些常见示例。

1‑1. 在家中共享电脑时

如果 Ubuntu 被家庭成员共享,每个人都需要切换到自己的账户,以保持各自的桌面设置和偏好。例如,为父母和孩子分别创建账户,可在工作环境和学习环境之间形成明确的界限。

1‑2. 在公司或教育机构中

在学校或企业中,多个员工或学生使用同一台电脑是常见的做法。在这种环境下,切换用户账户对于保留每位用户的个人数据和设置至关重要
此外,系统管理员必须使用特权账户(root 权限),这也使得用户切换成为管理任务的必要手段。

1‑3. 为服务器管理切换用户

在 Ubuntu 服务器上,通常需要在特定用户账户下运行应用或服务。例如:

  • 以普通用户登录 → 仅在需要时切换到管理员
  • 切换到特定用户以管理某些系统服务

在这些情况下,常通过命令行(CLI)进行用户切换。

1‑4. 在开发环境中使用多个用户

开发者可能会切换用户,以在不同环境下测试软件。例如:

  • 使用标准用户执行日常开发任务
  • 在另一个用户账户下测试应用行为
  • 使用 root 用户执行管理操作

尤其在涉及不同权限级别时,用户切换对于验证工作至关重要

本文涵盖的内容

本文将说明如何在 Ubuntu 中通过 GUI(图形用户界面)CLI(命令行界面) 切换用户。同时,还会详细解释 sudo 与 su 的区别、SSH 环境下的用户切换以及常见错误的排查方法

2. Ubuntu 中用户管理与切换的基础

Ubuntu 作为多用户系统

Ubuntu 作为基于 Linux 的操作系统,支持 多用户架构。每个用户都有唯一的账户,能够独立管理各自的设置和数据。

用户环境的隔离

在 Ubuntu 中,每个用户拥有一个 独立的环境,包括以下内容:

  • 主目录(例如 /home/username/
  • 用于个人应用设置的 配置文件
  • 对文件和可执行命令的 权限与访问控制
  • 与每个登录会话或后台任务关联的 运行进程

该系统确保 多个用户可以在同一套 Ubuntu 安装上工作而不会相互干扰

Ubuntu 中的用户类型

Ubuntu 定义了多种用户类型。了解这些角色有助于管理员正确管理和切换账户。

标准用户

标准用户是用于日常操作的普通账户。

  • 限制安装软件或修改系统范围设置的权限
  • 未经适当授权无法访问其他用户的数据
  • 管理个人文件、应用和设置

管理员用户(sudo 组)

管理员用户可以通过 sudo 命令临时提升为 root 权限。

  • sudo 允许安装软件和修改系统配置
  • 在 Ubuntu 安装过程中创建的第一个账户通常被授予 sudo 权限

检查具有管理员权限的用户

getent group sudo

此命令列出所有属于 sudo 组的用户。

root 用户

root 用户是拥有对整个系统不受限制访问权限的超级用户。
出于安全考虑,Ubuntu 默认禁用直接 root 登录

  • 建议使用 sudo 临时获取 root 权限
  • 仅在必要时使用 sudo susudo -i 启动 root shell

启用 root 用户(不推荐)

sudo passwd root

设置 root 密码后,你可以使用 su 直接登录。然而,启用 root 登录会带来安全风险,除非绝对必要,否则应避免。

切换用户时的关键考虑因素

在 Ubuntu 中有多种切换用户的方式,合适的方法取决于系统环境和使用目的。

通过 GUI 切换

如果你使用桌面环境,基于 GUI 的切换是最简便的方法

  • 从锁屏切换
  • 注销并以其他用户登录
  • 使用系统设置菜单

基于 GUI 的过程在 第 3 节:通过 GUI 切换用户 中有详细说明。

通过 CLI(命令行界面)切换

要在终端切换用户,主要使用 susudo

su 命令

切换到其他用户:

su [username]

切换到 root 用户:

su -

这会保持当前 shell,但进入另一个用户的环境。

sudo 命令

临时以管理员权限执行命令:

sudo [command]

切换到 root 用户:

sudo su

sudo -i

详细的命令行操作在 第 4 节:通过 CLI 切换用户 中有说明。

会话持久性和切换效果

  • 使用 GUI 切换时,前一个用户的会话保持活跃,应用程序继续运行
  • 使用 CLI 切换时,会创建 一个新会话而不影响现有进程
  • 使用 su 时,环境变量可能会被继承;使用 su - 可重置环境

小结

  • Ubuntu 支持多个独立的用户环境
  • 存在三类用户:标准用户、管理员用户(sudo)和 root 用户
  • 用户可以通过 GUI 或 CLI 切换
  • 理想的切换方式取决于系统的用途和环境

3. 如何通过 GUI 切换用户

在 Ubuntu 的桌面环境中,你可以轻松使用 图形用户界面(GUI) 切换用户。此方法直观,适合不想使用命令行的初学者。

本节介绍两种主要方法:从锁屏切换用户注销并以其他用户登录

3-1. 使用锁屏切换用户

Ubuntu 允许你 在保持当前会话活跃的情况下切换到其他用户。此功能在与家人共享电脑或管理员需要临时访问其他账户时非常有用。

从锁屏切换用户的步骤

  1. 点击屏幕右上角的系统菜单(电源图标)。
  2. 点击 “锁定”。
  3. 当前会话将被锁定并保留。
  4. 在登录界面选择 “切换用户”。
  5. 选择其他用户 并输入密码登录。

“锁定”按钮

Switch User button

右下角选项:“切换用户”

Select a new user

选择新用户。

使用锁屏的好处

前一个会话保持活跃
应用程序和任务保持打开
适合临时访问或快速切换

然而,如果多个用户同时保持登录,内存消耗会增加。在 RAM 有限的系统上,性能可能会下降。

3-2. 注销并以另一个用户登录

与锁屏方法不同,注销会完全终止当前会话,然后切换用户。这会影响活动应用程序和未保存的数据。

通过注销切换用户的步骤

  1. 打开右上角的系统菜单
  2. 点击“注销”
  3. 在对话框中确认注销。
  4. 登录屏幕出现
  5. 选择另一个用户并输入密码。

注销的优缺点

👍 应用程序和进程终止,释放内存
👍 适合资源有限的系统
未保存的更改可能会丢失
切换后必须重新打开应用程序

Click Log Out

Confirmation dialog

Login screen

3-3. 切换用户时的注意事项

性能影响

  • 锁屏切换会保持之前的会话活跃,消耗内存
  • 低规格 PC 可能在多个会话时变慢
  • 资源密集型应用程序 如视频编辑器或虚拟机可能导致性能问题

切换前保存数据

  • 切换前始终保存未保存的工作
  • 自动保存功能很有帮助,但推荐手动保存
  • 特别注意浏览器标签页和文本编辑器

3-4. 总结

  • Ubuntu 支持简单的基于 GUI 的用户切换
  • 锁屏切换 保留会话和应用程序
  • 注销 终止会话并释放系统资源
  • 根据内存使用和负载选择合适的方法

4. 通过命令行 (CLI) 切换用户

在 Ubuntu 中,您可以使用命令行界面 (CLI) 轻松切换用户。此方法在服务器环境或远程访问会话 (SSH) 中尤为重要,因为这些环境中没有 GUI。

本节详细介绍su 命令、sudo 命令以及 SSH 环境中的用户切换

4-1. 使用 su 命令切换用户

su 命令(Switch User)用于从当前用户切换到另一个用户账户。通过输入目标用户的密码,您将获得该用户环境的访问权限

su 命令的基本用法

要切换到另一个用户:

su [username]

示例:

su john

系统会提示您输入目标用户的密码 以完成切换。

切换到 Root 用户

要切换到 root 用户:

su -

su root

Root 用户具有完全的操作系统权限,因此请小心使用以避免关键错误

susu - 的区别

su 命令有两种用法模式:susu -

CommandBehavior
su [username]Switches user while retaining current environment variables
su - [username]Starts a new login session, resetting environment variables

推荐使用 su -,因为它会正确加载新用户的环境变量(PATH、shell 配置等)。

使用 su 时的注意事项

  • 必须知道目标用户的密码 才能使用 su
  • 对于管理任务,使用 sudo 更安全且首选
  • 不要长时间保持 root 身份 。完成后,使用 exit 退出会话

4-2. 使用 sudo 命令切换用户

sudo 命令(“Superuser Do”)允许用户临时以管理员权限执行命令。
su 不同,sudo 不需要知道目标用户的密码—只需当前用户的密码,前提是该用户属于 sudo 组。

使用 sudo 执行管理任务

以临时提升的权限运行命令:

sudo [command]

示例:

sudo apt update

在这里,系统会询问当前用户的密码,而不是 root 密码。

使用 sudo 切换到 Root 用户

如果您需要 root 访问权限来进行 shell 会话:

sudo su

or

sudo -i

这将打开一个具有 root 权限的 shell。

以其他用户运行命令

要以特定用户执行命令:

sudo -u [username] [command]

示例:

sudo -u john whoami

这将在用户 john 下运行 whoami,并显示正在执行的用户名。

sudo 与 su 的区别

CommandPurposeRequired Password
su [username]Fully switch to another userTarget user’s password
sudo [command]Execute a command with temporary administrator accessCurrent user’s password
sudo suSwitch to the root userCurrent user’s password

4-3. 在 SSH 环境中切换用户

当通过 SSH 连接到远程 Ubuntu 服务器时,GUI 不可用。因此,必须使用 CLI 命令切换用户。

SSH 登录后切换用户

首先,连接到服务器:

ssh [username]@[server IP]

登录后,切换用户:

su [username]

或切换到 root 用户:

su -

在 SSH 中使用 sudo 切换用户

如果你的账户拥有 sudo 权限,可以在不知道目标用户密码的情况下切换用户:

sudo -u [username] -s

这相当于更安全的 su 替代方案。

直接以其他用户登录 SSH

你也可以直接以其他用户身份登录:

ssh [another user]@[server IP]

示例:

ssh john@192.168.1.100

4-4. 小结

  • su 完全切换用户,但需要目标用户的密码
  • sudo 在不切换账户的情况下临时授予管理员权限
  • sudo susudo -i 可切换到 root 用户
  • 在 SSH 环境中,susudo -u 是管理用户的关键工具

5. 在 Ubuntu 中管理用户(添加、删除、修改)

Ubuntu 允许你 添加新用户、删除不需要的用户或修改已有用户账户。在共享电脑或管理多用户服务器时,正确的用户管理至关重要。

本节重点介绍如何使用 命令行界面(CLI) 来管理用户。

5-1. 添加新用户

任何属于 sudo 组(拥有管理员权限)的用户都可以创建新用户账户。

使用 adduser 命令创建用户

创建新用户最常用的方式是使用 adduser 命令。

运行命令
sudo adduser [new-username]

示例:

sudo adduser john
接下来会发生什么

在创建用户的过程中,你将被提示输入以下信息:

  1. 新用户的 密码
  2. 可选的用户信息(全名、电话号码等)
  3. 自动创建主目录/home/[username]
  4. 放置初始配置文件

完成后,账户即可登录。

使用 useradd 命令创建用户

useradd 也可以用来添加用户,但与 adduser 不同,它 不会自动创建主目录或设置密码

运行命令
sudo useradd -m -s /bin/bash [new-username]

示例:

sudo useradd -m -s /bin/bash alex

选项:

  • -m :创建主目录
  • -s /bin/bash :将默认 shell 设置为 bash

设置用户密码:

sudo passwd alex

为新用户授予 sudo 权限

让新用户能够使用 sudo 权限:

sudo usermod -aG sudo [username]

示例:

sudo usermod -aG sudo john

此命令将 john 添加到 sudo 组,从而赋予他管理员访问权限。

5-2. 删除用户

删除不再使用的账户可以提升系统安全性并减少不必要的资源消耗。

使用 deluser 删除用户

删除用户账户:

sudo deluser [username]

示例:

sudo deluser john

此命令删除账户,但 保留用户的主目录

使用 userdel 删除用户

userdel 提供了更细粒度的删除控制。

删除用户及其主目录
sudo userdel -r [username]

示例:

sudo userdel -r alex

此命令删除 alex 用户并移除 /home/alex/ 目录。

删除用户时的重要注意事项

  • 如有需要,备份用户的主目录 sudo tar -czf /backup/john_backup.tar.gz /home/john

  • 不能删除当前已登录的用户

  • 如果 john 已登录,sudo deluser john 将会失败
  • 如有必要,可使用以下命令终止用户进程:killall -u [username]

5-3. 重命名用户

您可以使用 usermod 命令重命名现有用户。

使用 usermod 更改用户名

运行命令
sudo usermod -l [new-username] [current-username]

示例:

sudo usermod -l michael john

这会将 john 更改为 michael

重命名主目录

更改用户名 不会自动重命名主目录/home/john 保持不变)。要重命名它:

重命名主目录
sudo mv /home/john /home/michael
更新主目录路径
sudo usermod -d /home/michael -m michael

重命名用户时的重要注意事项

  • 不能重命名当前已登录的用户
  • 如果以 john 身份登录,命令将会失败
  • 如有必要,在重命名之前切换到 root 用户
  • sudo 组权限可能会受到影响
  • 确认用户仍在 sudo 组中:sudo groupmems -g sudo -l

5-4. 小结

  • 使用 adduser 轻松创建新用户
  • 使用 deluser 删除用户,或使用 userdel -r 删除其主目录
  • 通过 usermod -l 修改用户名,并相应地重命名主目录
  • 在删除或修改用户账户之前务必备份数据

6. 常见问题解答 (FAQ)

在 Ubuntu 中管理和切换用户对许多用户来说至关重要,但有时会让人感到困惑。本节回答 常见问题并提供实用解决方案

6-1. su 与 sudo 有何区别?应该使用哪一个?

Q: 我不明白 susudo 的区别。应该使用哪一个?

A: su 完全切换到另一个用户账户,而 sudo 则临时以管理员权限执行命令。

CommandPurposeRequired Password
su [username]Switch completely to another userTarget user’s password
sudo [command]Execute a command with temporary administrator privilegesCurrent user’s password
sudo suSwitch to the root userCurrent user’s password

💡 推荐: 出于安全考虑,通常建议使用 sudo 而非 su

6-2. 能否在图形界面中切换用户而无需每次输入密码?

Q: 我的家人共用一台 Ubuntu 电脑。有没有办法在切换用户时不每次输入密码?

A: 可以。启用自动登录即可在登录时跳过密码输入。

如何启用自动登录

  1. 打开“设置”应用
  2. 选择 “用户”
  3. 启用 “自动登录”

💡 注意: 自动登录会降低安全性,故在共享或公共系统上启用时请谨慎。

6-3. 如何在 SSH 中切换用户而不使用 sudo?

Q: 通过 SSH 连接时,是否有办法在不使用 sudo 的情况下切换用户?

A: 可以。您可以使用 runuser 命令作为 su 的替代方案。

runuser -l [username] -c "command"

示例:

runuser -l john -c "whoami"

💡 这在需要切换用户的脚本中非常有用。

6-4. 运行 su 时出现 “Authentication failure” 的原因是什么?

Q: 当我运行 su 时,出现 “Authentication failure” 错误。我该怎么办?

A: su 需要目标用户的密码。请检查以下事项:

  • 密码是否正确?(检查是否开启了大写锁定)
  • 目标用户账户是否被锁定? sudo passwd -S [username]

如果结果显示 L(已锁定),请解锁:

sudo passwd -u [username]
  • /etc/pam.d/su 是否配置了限制 su? sudo nano /etc/pam.d/su

如果以下行未被注释,则只有 wheel 组的用户可以运行 su

auth required pam_wheel.so use_uid

6-5. 删除用户后能恢复数据吗?

Q: 我不小心删除了一个用户。我能恢复数据吗?

A: 如果使用 deluseruserdel 删除用户时未删除其主目录,数据可能仍然存在。

检查主目录是否仍然存在

ls /home/

如果主目录已被删除

如果没有备份,完整恢复比较困难,但可以尝试使用 extundelete

  1. 安装 extundelete sudo apt install extundelete
  2. 扫描并恢复已删除的文件 sudo extundelete /dev/sdX --restore-all

/dev/sdX 替换为正确的分区(例如 /dev/sda1)。

💡 重要: 恢复并不保证成功。删除用户前请务必先做好备份。

6-6. 小结

  • 了解 susudo 的区别并适当使用它们。
  • 启用自动登录以简化 GUI 用户切换(请谨慎使用)。
  • 在 SSH 环境中使用 runusersudo -u 切换用户。
  • 如果出现 su: Authentication failure,请检查密码和账户状态。
  • 被删除的用户数据可能可以恢复,但备份是最安全的方案。

7. 结论

在本文中,我们探讨了通过 GUI 和 CLI 两种方式 在 Ubuntu 中切换和管理用户 的方法。Ubuntu 被设计为强大的多用户操作系统,合理的用户管理可以让系统运行得更高效、更安全。

以下是每个章节讨论的要点和最佳实践的总结。

7-1. Ubuntu 中用户切换的基础概念

  • Ubuntu 是一个多用户系统,每个用户独立运行。
  • 了解 标准用户、管理员用户(sudo)和 root 用户 之间的区别。
  • 用户切换可以通过 GUI 或 CLI 完成。

7-2. 使用 GUI 切换用户

  • 锁屏切换 在您登录另一个用户时保持当前会话活跃。
  • 注销 完全结束会话并释放系统内存。
  • 用户账户设置 允许进行添加或管理用户等管理员操作。
  • 重要: 切换用户时请保存未保存的数据并监控内存使用情况。

7-3. 通过 CLI 切换用户

  • 使用 su [username] 在输入目标用户密码后切换用户。
  • 使用 su - 获取完整的登录环境,确保环境变量正确。
  • 使用 sudo [command] 获取临时管理员权限。
  • 在 SSH 环境中,使用 runusersudo -u 安全切换用户。

7-4. 添加、删除和修改用户

  • 可以使用 sudo adduser [username] 添加 新用户
  • 使用 sudo usermod -aG sudo [username] 授予管理员权限。
  • 使用 sudo deluser [username] 删除用户,并使用 sudo userdel -r [username] 删除其主目录。
  • 使用 sudo usermod -l [new-name] [old-name] 重命名用户 并相应更新主目录。
  • 在进行重大更改前 务必备份重要数据

最佳实践:
✅ 删除或修改前备份用户数据
✅ 负责任地使用管理员权限
✅ 避免不必要地使用 root 账户

7-5. FAQ 主题摘要

  • 尽可能使用 sudo 而非 su,以提升安全性。
  • 自动登录简化 GUI 切换,但会降低安全性。
  • SSH 用户切换可通过 runusersudo -u 实现。
  • 出现认证问题时检查密码和账户锁定情况。
  • 被删除的数据可能可恢复,但 定期备份 是最好的防御。

7-6. Ubuntu 用户管理的最佳实践

🔹 细粒度权限控制

  • 适当地分离标准权限和管理员权限。
  • 必要时使用 visudo 配置特定命令的 sudo 权限。

🔹 面向安全的操作

  • 避免直接使用 root 账户;仅在需要时获取权限。
  • 对免密码登录或自动登录保持警惕——尤其是在共享系统或服务器上。
  • 定期删除未使用的用户 以降低风险。

🔹 数据保护

  • 在修改或删除用户账户之前,备份 home 目录。
  • 使用 rsynccron 进行计划的自动备份。

7-7. 最后思考

  • 了解 GUI 和 CLI 两种方法,并根据你的环境使用它们。
  • 适当地使用 su 和 sudo,以防止系统被滥用。
  • 谨慎删除或修改用户,以维护系统安全。
  • 采用定期备份方案,以防止意外的数据丢失。

Ubuntu 提供了强大的用户管理功能,正确使用时,可实现 安全、灵活且高效的系统运行。我们希望本指南能帮助你理解并自信地在 Ubuntu 中进行用户切换和管理。

年収訴求