简介
su - user
能切换到一个用户中去执行一个指令或脚本
命令格式
该命令格式如下所示:
1 | $ su [options...] [-] [user [args...]] |
其中一些比较重要的选项如下所示:
-f
,–fast
:快速启动,不读取启动文件,这个取决于具体的shell。-l
,–login
:这个参数让你有焕然一新的感觉,基本类似于重新登录。如果不指定,默认情况下是root环境。-g
,--group
:指定主要组,这个只能由root用户指定。-m
,-p
,–preserve-environment
:保留环境变量,除非指定了-l。-s SHELL
,--shell=SHELL
:切换使用的SHELL。
切换到用于user执行命令command
执行如下命令,会切换到user用户,然后执行ls命令
1 | $ su - user -c ls |
切换使用的SHELL
不同的人,可能对不同的SHELL情有独钟,A喜欢bash,B可能喜欢csh,这个就可以通过-s来切换,如下可以切换到csh
1 | $ su - user -s /bin/csh |
关于SHELL,根据安装的环境不同,基本有如下几个:
- /bin/bash
- /bin/tcsh
- /usr/bin/sh
- /bin/csh
- /sbin/nologin
- /bin/sh
su [user] 和 su - [user]的区别:
su [user]
切换到其他用户,但是不切换环境变量,su - [user]
则是完整的切换到新的用户环境。
如:
1 | $ pwd |
所以大家在切换用户时,尽量用su - [user],否则可能会出现环境变量不对的问题。