su (Unix)

本页使用了标题或全文手工转换
维基百科,自由的百科全书

su命令,也被称为“替代用户”、“超级用户”或“切换用户”,是可以让计算机操作者在虚拟控制台切换当前用户帐户的命令。

没有其他命令行参数时,默认将会将当前用户提权至本地超级用户

用法

在命令行中运行时,su会要求目标用户的密码。如果验证通过,操作者将会授予该帐户的权限,并且允许访问该帐户可以访问的文件和目录。

john@localhost:~$ su
密码: 
root@localhost:/home/john# exit
登出
john@localhost:~$

此外,还可以切换到另一个不是超级用户的帐户,例如su jane

john@localhost:~$ su jane
密码:
jane@localhost:/home/john$ exit
登出
john@localhost:~$

一般来说,管理员应该使用一个连字号su -,等同于su - root),来启动登录shell。这样,用户可以获得目标用户的用户环境

john@localhost:~$ su - jane
密码:
jane@localhost:~$

相关的命令sudo也可以允许以另一个用户的身份执行命令,但遵守一组的限制,以决定哪些用户可以以什么用户身份执行什么命令(通常是在配置文件/etc/sudoers中,最好使用visudo编辑)。与su不同的是,sudo验证的是用户自己的密码,而不是目标用户的(允许特定主机上的特定用户执行特定命令,而不用共享密码,同时减轻无人值守终端的风险)。

一些类Unix系统wheel组,且只允许组内用户su到root。[1]很难说这是否会降低安全风险,因为入侵者可能会轻易入侵其中一个帐户。然而,由于理念不同,GNU su不支持wheel组。理查德·斯托曼认为,由于wheel组会阻止用户使用泄露给他们root密码,现有的管理员就可以欺压普通用户。[2]

参见

参考

外部链接