linux su命令是系统管理中非常基础且常用的命令,全称为switch user,核心作用就是切换当前终端的用户身份,让当前登录的用户临时或永久切换到其他用户,比如从普通用户切换到root管理员用户,或者在不同普通用户之间切换,切换后可以获得目标用户的权限来执行对应操作。

su命令的基本语法
su命令的基础语法格式如下:
su [选项] [目标用户名]
如果不指定目标用户名,默认会切换到root用户。常用的选项有两个,分别是-l(或者-)和-c,-l选项会模拟目标用户的完整登录环境,加载目标用户的环境变量和配置文件,-c选项可以在切换到目标用户后执行指定的单条命令,执行完成后就回到原用户身份。
常见使用场景示例
切换到root用户
如果当前是普通用户,想要切换到root用户,直接执行以下命令:
su -
输入root用户的密码后,就可以切换到root用户,并且加载root的完整环境变量,终端提示符也会变成root对应的样式。如果只执行su不加上-选项,虽然也能切换到root用户,但是不会加载root的环境变量,可能会出现部分命令路径识别异常的问题。
切换到其他普通用户
比如要从当前用户切换到名为test的用户,执行以下命令:
su - test
输入test用户的密码后,就可以切换到test用户,获得test用户的权限。
临时执行单条命令
如果只想用root权限执行一条命令,不需要完全切换到root用户,可以用-c选项:
su -c "ls /root" root
输入root密码后,就会用root身份执行ls /root命令,查看root用户家目录下的文件,执行完成后自动回到原用户身份。
su命令和sudo命令的区别
很多用户会混淆su和sudo命令,两者的核心区别如下:
| 对比项 | su命令 | sudo命令 |
|---|---|---|
| 权限验证 | 需要输入目标用户的密码 | 需要输入当前用户的密码 |
| 权限范围 | 切换到目标用户后拥有目标用户的全部权限 | 可以配置仅允许执行指定的命令,权限更可控 |
| 使用场景 | 需要长期使用目标用户身份操作时使用 | 临时执行单条需要高权限的命令时使用 |
使用su命令的注意事项
- 切换到root用户后,操作要格外谨慎,避免误执行删除系统文件等危险操作,完成需要高权限的操作后,建议及时用
exit命令退出root身份。 - 如果系统禁止root用户直接登录,可能无法通过su命令切换到root,这时候需要先切换到允许登录的普通用户,再尝试切换。
- 普通用户要能使用su命令切换到其他用户,需要目标用户的密码,如果没有对应密码则无法切换。
注意:不要随意将root密码告知其他普通用户,如果需要给普通用户部分高权限,更推荐使用sudo命令做精细化权限配置,而不是开放su切换到root的权限。