su
命令 (switch user) 用于在 Linux 系统中切换用户身份。除 root 用户外,切换到其他用户需要目标用户的密码。若不指定用户名,默认切换到 root 用户
用法 :
su [选项] [用户名]
常用选项:
-
: 切换到目标用户的环境变量,类似于登录该用户。-l
或--login
: 与-
相同,切换到目标用户的环境变量。推荐使用--login
而非-
,以避免环境混淆引发的异常。-c command
: 以目标用户身份执行命令,然后切换回原用户。-s, --shell
: 指定要运行的 shell,而不是使用/etc/passwd
文件中指定的默认 shell。-m, -p, --preserve-environment
: 保留当前环境变量,不重置。当使用--login
选项时,此选项不起作用。
使用案例:
切换到root用户
su
或
su - root
或
su -
切换到meng 用户
su - meng
从 root 用户切换到其他用户不需要密码,普通用户间切换需要输入目标用户的密码。
以root身份执行ifconfig命令
su 和 su - 的区别:
su -
: 切换用户,同时切换到目标用户的环境变量。su
: 仅切换用户,不改变当前用户的环境变量。
注意事项:
- 推荐使用
--login
选项,以避免由于环境混淆所引发的一些异常情况。 su
命令允许我们用指定的用户和组来执行某个命令,当没有指定任何用户时,su
默认用root
身份以交互式 shell 脚本的方式来执行命令。sudo
特权用户也可以在sudo
前加上su
命令。 如:sudo su - root
。