Linux su 命令

17 Mar 2025 | 阅读 2 分钟

su 命令允许你以另一个用户的身份运行 shell。

语法

示例

Linux su Commands1

查看上面的截图,用户账户从 sssit 更改为 jtp


su 到 root

当你知道 root 密码时,你可以切换到 root 用户。

语法

Linux su Commands2

su 作为 root

root 用户可以在不知道任何用户密码的情况下成为任何现有用户。否则,需要密码。

示例

Linux su Commands3

查看上面的截图,从用户 jtp 切换到 sssit 时,它会要求输入密码。

现在让我们看下面的例子。

示例

Linux su Commands4

查看上面的截图,我们是 root 用户。从 root 切换到 jtp 时,它没有要求输入密码,我们就成功地变成了 jtp 用户。


su - $username

默认情况下,su 命令会保持相同的 shell 环境。要访问目标用户的 shell 环境,请使用带 (-) 的 su 命令,后面跟目标用户名。

示例

Linux su Commands5

查看上面的截图,使用命令 “su - jtp”,当前 shell 环境是 /home/jtp,用户也是 jtp。使用命令 “su jtp”,当前 shell 环境是 /home/sssit,用户是 sssit


su -

如果未指定用户名,则默认情况下,它会将 root 假定为目标用户。

示例

Linux su Commands6

查看上面的截图,命令 “su -” 已假定 root 为目标。


以另一个用户身份运行程序 / sudo 命令

sudo 命令允许用户使用另一个用户的凭据启动程序。

示例

Linux su Commands7

查看上面的截图,在创建用户 “akki” 时,shell 会给出上述消息。


带 sudo 的命令

使用 sudo 命令,我们可以在不成为 root 或不知道 root 密码的情况下在系统上创建新用户。

示例

Linux su Commands8

查看上面的截图,用户“akki”已使用 sudo 命令创建。


sudo su -

默认情况下,某些 Linux 系统(如 Ubuntu)没有为 root 用户设置密码。这意味着你无法以 root 用户身份登录。

要执行类似 root 的任务,会通过 /etc/sudoers 文件授予用户所有 sudo 权限。所有属于 admin 组的用户都可以使用 sudo 命令来执行 root 任务。

语法

Linux su Commands9

查看上面的截图,命令 “grep admin /etc/sudoers” 允许所有 admin 组用户获得 root 权限。

通过键入 sudo su -,用户可以在不输入 root 密码的情况下成为 root 用户。sudo 命令会询问用户自己的密码。

语法

Linux su Commands10

查看上面的截图,bash 询问的是 sssit 的密码而不是 root 的密码,之后我们就以 root 用户登录了。


下一主题Linux 用户管理