su程序允许你在缺省情况下使用其他用户的权限运行命令。
使用su是切换到当前登录会话中的管理帐户的最简单方法,当不允许root用户通过ssh或使用GUI显示管理器登录到系统时,这特别方便。
在本教程中,我们解释如何使用su命令。
如何使用su命令
su命令的一般语法如下:su [OPTIONS] [USER [ARGUMENT...]]
不带任何选项调用时,su的默认行为是以root身份运行交互式shell:su
系统将提示你输入root密码,如果经过身份验证,运行该命令的用户将临时变为root。
会话shell (SHELL )和home (HOME )环境变量是从替换用户条目的设置的,而不是当前目录,
要确认用户已更改,请使用whoami命令:whoami
该命令将打印运行当前shell会话的用户的名称:root
调用su时最常用的选项是-,-l,--login,这使得shell成为登录shell,它环境与真正的登录非常相似,并将当前目录:su -
如果要运行另一个shell而不是在passwd文件中定义的-s,请使用--shell选项,例如要切换到root并运行zsh shell,可以键入:su -s /usr/bin/zsh
若要保留调用用户的整个环境( HOME,SHELL,USER和LOGNAME )使用-p,--preserve-environment选项。su -p
使用-选项时忽略-p,
如果要以替代用户身份运行命令而不启动交互式shell,请使用-c,--command选项,例如要将ps命令作为root调用,可以键入:su -c ps
要切换到另一个用户帐户,请将用户名作为参数传递给su,例如要切换到用户tyrion,请键入:su tyrion
sudo与Su的比较
在某些Linux发行版(如Ubuntu)上,出于安全原因,默认情况下禁用了root用户帐户。这意味着没有为root设置密码,并且您不能使用su切换到root。
切换到root的一个选项是,在su命令前面加上sudo并输入当前登录的用户密码:sudo su -
sudo命令允许你在默认情况下以其他用户身份运行程序root用户。
如果授予用户sudo权限,则su命令将以root身份调用。运行sudo su -并使用用户密码与使用su -密码运行root相同。
-i选项一起使用时,sudo在用户的shell环境中运行交互式登录root:sudo -i
sudo -i与运行su -相同。
使用sudo而不是su的优点是,不需要在多个管理用户帐户之间共享root密码。
另外,使用sudo,你可以允许用户使用root权限运行特定的程序。
结束语
su是一个命令行实用程序,可让您临时成为另一个用户并执行命令。
如果你有问题或反馈,请留下评论。