su(switch user)命令可以在任意用户之间切换, 包含普通用户与root 用户之间,以及普通用户与普通用户之间。普通用户之间切换需要输入“目标用户”的密码, 普通用户切换到root用户也需要输入“root用户”的密码, 但root用户切换到普通用户是不需要密码的。
su的语法如下:
su options [user]
- -, -l, --login选项:本质是在当前用户下,新开一个“登录式Shell(login shell)”, 根据需要输入密码,切换到目标用户。 默认“user”的参数值为“root”,当不指定目标用户时,就切换到root用户,否则需要指定“目标用户”。使用logout可以退出当前的登录式shell,返回切换前的用户。另外注意, 加上该选项, 新开的登录式shell的所有环境变量及配置都是“目标用户”的, 而不会沿用切换用户之前的环境变量值。
- -m, -p, --preserve-environment选项 : 与“login”选项相似, 只是不创建新的登录式shell, 并且沿用切换用户之前的所有环境变量, “建议切换用户时,加上-l 选项”。
- -c, --command COMMAND 选项:切换到目标用户, 执行指定的COMMAND命令,然后退回到当前用户。
实例如下所示:
参考资料
- su --help
- Linux su命令:用户间切换