Commands

在 Linux 系统中 Su 切换用户命令

luobo · 1月15日 · 2020年 · ·

su(替代或切换用户的缩写)实用程序允许您使用其他用户(默认情况下为root用户)的特权运行命令。

使用su是在当前登录会话中切换到管理帐户的最简单方法。 当不允许root用户通过ssh或使用GUI显示管理器登录系统时,这特别方便。

在本教程中,我们将说明如何使用su命令。

su命令的使用方法

su命令的常规语法如下:

su [OPTIONS] [USER [ARGUMENT...]]

不带任何选项调用时,su的默认行为是以root用户身份运行交互式shell:

su

系统将提示您输入root密码,如果通过身份验证,则运行该命令的用户将临时成为root用户。

会话外壳程序(SHELL)和主目录(HOME)环境变量是通过替代用户的/etc/passwd条目设置的,并且当前目录不变。

要确认用户已更改,请使用whoami命令:

whoami

该命令将打印运行当前shell会话的用户的名称:

输出如下所示:

root

调用su时最常用的选项是--l-login。 这使该shell成为登录shell,其环境与真实登录非常相似,并更改了当前目录:

su -

如果要运行另一个shell而不是passwd文件中定义的shell,请使用-s、·–shell·选项。 例如,要切换到root并运行zsh shell,您可以输入:

su -s /usr/bin/zsh

要保留调用用户的整个环境(HOME,SHELL,USER和LOGNAME),请使用-p--preserve-environment选项。

su -p

使用-选项时,-p将被忽略。

如果要以替代用户身份运行命令而不启动交互式shell,请使用-c--command选项。 例如,要以root身份调用ps命令,请输入:

su -c ps

要切换到另一个用户帐户,请将用户名作为参数传递给su。 例如,要切换到用户tyrion,请输入:

su tyrion

sudo vs su

在某些Linux发行版(如Ubuntu)上,出于安全原因,默认情况下禁用了root用户帐户。 这意味着没有为root设置密码,并且您不能使用su切换到root。

更改为root的一种方法是在su命令前加上sudo并输入当前登录的用户密码:

sudo su -

sudo命令允许您以其他用户(默认情况下为root用户)运行程序。

如果授予用户sudo评估,则su命令将以root身份调用。 使用根密码运行sudo su -并使用用户密码与运行su -相同。

-i选项一起使用时,sudo使用root用户的环境运行交互式登录shell:

sudo -i

sudo -i与运行su -基本相同。

su相比,使用sudo的优点是不需要在多个管理用户帐户之间共享root密码。

另外,使用sudo可以允许用户仅以root特权运行特定程序。

最后总结

su是一个命令行实用程序,可让您临时成为另一个用户并与替代用户一起执行命令。

如果您有任何问题或反馈,请随时发表评论。

0 条回应