外置命令。
[root@localhost ~]# su [选项] 用户名
- su 命令的选项
| 选项 | 功能 |
|---|---|
| - | 当前用户不仅切换为指定用户的身份,同时所用的工作环境也切换为此用户的环境(包括 PATH 变量、MAIL 变量等),使用 - 选项可省略用户名,默认会切换为 root 用户 |
| -l | 同 - 的使用类似,也就是在切换用户身份的同时,完整切换工作环境,但后面需要添加欲切换的使用者账号 |
| -p | 表示切换为指定用户的身份,但不改变当前的工作环境(不使用切换用户的配置文件) |
| -m | 和 -p 一样 |
| -c 命令 | 仅切换用户执行一次命令,执行后自动切换回来,该选项后通常会带有要执行的命令 |
- 示例
[lamp@localhost ~]$ su -root
密码: <-- 输入 root 用户的密码
# "-"代表连带环境变量一起切换,不能省略
[lamp@localhost ~]$ whoami
lamp
#当前我是lamp
[lamp@localhost ~]$ su - -c "useradd user1" root
密码:
# 不切换成root,但是执行useradd命令添加user1用户
[lamp@localhost ~]$ whoami
lamp
# 我还是lamp
[lamp@localhost ~]$ grep "user1' /etc/passwd
userl:x:502:504::/home/user1:/bin/bash
# user用户已经添加了
1. su 和 su - 的区别
注意,使用 su 命令时,有 - 和没有 - 是完全不同的,- 选项表示在切换用户身份的同时,连当前使用的环境变量也切换成指定用户的。我们知道,环境变量是用来定义操作系统环境的,因此如果系统环境没有随用户身份切换,很多命令无法正确执行。