Linux su 命令实战示例

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,你将学习 Linux 的 su 命令,该命令允许你切换到另一个用户账户,通常是具有更高权限的用户,例如 root 用户。你将了解 su 命令的基本用法,包括切换到 root 用户和特定用户账户。此外,你还将探索如何使用 su 命令管理权限。本实验提供了实际示例,帮助你熟练掌握 Linux 系统中的用户和权限管理。

Linux 命令速查表


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux/UserandGroupManagementGroup -.-> linux/useradd("User Adding") linux/UserandGroupManagementGroup -.-> linux/userdel("User Removing") linux/UserandGroupManagementGroup -.-> linux/sudo("Privilege Granting") linux/UserandGroupManagementGroup -.-> linux/su("User Switching") subgraph Lab Skills linux/useradd -.-> lab-422936{{"Linux su 命令实战示例"}} linux/userdel -.-> lab-422936{{"Linux su 命令实战示例"}} linux/sudo -.-> lab-422936{{"Linux su 命令实战示例"}} linux/su -.-> lab-422936{{"Linux su 命令实战示例"}} end

理解 su 命令

在这一步中,你将学习 Linux 中的 su 命令,它代表 "switch user"(切换用户)。su 命令允许你切换到另一个用户账户,通常是具有更高权限的用户,例如 root 用户。

为了理解 su 命令的基本用法,让我们从一个简单的示例开始:

sudo su

示例输出:

root@labex:/home/labex/project#

在上面的示例中,我们使用 sudo 命令切换到 root 用户账户。root 用户在 Linux 系统中拥有最高权限,可以执行任何操作。

su 命令也可以用于切换到特定用户账户,而不仅仅是 root 用户。例如,要切换到 labex 用户,你可以运行:

su - labex

示例输出:

labex@labex:/home/labex/project$

注意,提示符已经改变,表明我们现在以 labex 用户身份登录。

su 命令中的 - 选项非常重要,因为它确保加载新用户的环境,包括用户的 shell、环境变量和主目录。

如果没有 - 选项,su 命令只会更改用户,但环境将保持与之前用户的环境相同。

使用 su 命令切换用户

在这一步中,你将学习如何使用 su 命令切换到不同的用户账户。

首先,让我们切换到 root 用户账户:

sudo su

示例输出:

root@labex:/home/labex/project#

现在,切换到 labex 用户账户:

su - labex

示例输出:

labex@labex:/home/labex/project$

注意,提示符已经改变,表明我们现在以 labex 用户身份登录。

要切换回 root 用户,你可以再次运行 su 命令:

su -

示例输出:

root@labex:/home/labex/project#

不带特定用户名的 su - 命令将切换到 root 用户账户。

你也可以使用 su 命令切换到系统中的任何其他用户账户,只要你有必要的权限。

例如,要切换到 ubuntu 用户,你可以运行:

su - ubuntu

示例输出:

ubuntu@labex:/home/labex/project$

请记住,当切换到另一个用户账户时,你将拥有该用户的权限和环境,这可能与你当前用户账户的权限和环境不同。

使用 su 命令管理权限

在这一步中,你将学习如何使用 su 命令管理权限并以提升的权限执行命令。

正如你在前面的步骤中学到的,su 命令允许你切换到不同的用户账户。当你切换到 root 用户账户时,你将拥有系统中的最高权限,这意味着你可以执行任何操作。

让我们尝试执行一个需要提升权限的命令,例如安装一个软件包:

sudo su
apt-get update
apt-get install -y htop

示例输出:

Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [114 kB]
...
Setting up htop (3.0.5-7ubuntu1) ...

在上面的示例中,我们首先使用 sudo su 切换到 root 用户,然后能够执行 apt-get 命令来更新软件包列表并安装 htop 软件包。

如果你不是 root 用户,你仍然可以使用 sudo 命令以提升的权限执行命令。例如:

sudo apt-get update
sudo apt-get install -y htop

sudo 命令允许你以 root 用户的权限执行命令,而无需实际切换到 root 用户账户。

重要的是要谨慎使用 sudo 命令,因为它授予了提升的权限,如果使用不当,可能会被滥用或导致意外的后果。

总结

在本实验中,你学习了 Linux 中的 su 命令,它代表 "switch user"(切换用户)。su 命令允许你切换到另一个用户账户,通常是具有更高权限的用户,例如 root 用户。你学习了如何使用 su 命令切换到 root 用户账户以及特定用户账户,例如 labex 用户。su 命令中的 - 选项非常重要,因为它确保加载新用户的环境,包括用户的 shell、环境变量和主目录。你还学习了如何使用 su 命令管理权限,从而以提升的权限执行操作。

Linux 命令速查表