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

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

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

如何使用su命令

su命令的一般语法如下:su [OPTIONS] [USER [ARGUMENT...]]

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

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

通过替代用户的/etc/passwd条目设置了会话shell程序(SHELL)和家目录(HOME)环境变量,并且当前目录未更改。

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

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

调用su时最常用的选项是-,-l,--login。这使该外壳成为登录外壳,其环境与真实登录非常相似,并更改了当前目录: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选项。例如,要以超级用户身份调用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授予用户评估,则将以root身份调用su命令。运行sudo su -并使用用户密码与使用root密码运行su -相同。

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

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

与su相比,使用sudo的优势在于无需在多个管理用户帐户之间共享root密码。

此外,通过sudo,您可以允许用户仅以root特权运行特定程序。

结论

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

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