SU命令
时间:2019-04-29 03:17:29 来源:igfitidea点击:
如何使用su命令切换用户
su命令
运行su命令允许用户临时成为另一个用户。
su的基本语法:su [OPTION]…(用户(ARG)…]
如果没有向su命令传递用户,则假定为根用户。打开的外壳是/etc/passwd文件中指定的类型。(主要是/bin/bash)。当您执行su命令时,将要求您为您要成为的用户提供密码。但是,如果您使用root特权(超级用户)运行,则不会要求您输入密码。如果希望获得与传递的用户相同的环境,则必须使用su -l选项。这将环境设置为登录环境。
带和不带-l参数的su示例
请注意,当我们指定
-l或-选项时,PATH变量中的差异。
sles01:/home/john # id uid=0(root) gid=0(root) groups=0(root),105(sfcb) sles01:/home/john # echo $PATH /sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/usr/lib/mit/bin:/usr/lib/mit/sbin sles01:/home/john # su john john@sles01:~> id uid=1008(john) gid=100(users) groups=100(users),16(dialout),33(video),17000(dba) john@sles01:~> echo $PATH /root/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/usr/lib/mit/bin:/usr/lib/mit/sbin john@sles01:~> exit exit sles01:/home/john # su -l john john@sles01:~> echo $PATH /home/john/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/usr/lib/mit/bin:/usr/lib/mit/sbin
以另一个用户和环境的身份运行命令
如果传递-c,则可以传递命令行以指定用户的身份运行。如果您是root用户,系统将要求您确认指定帐户的密码。
sles01:/home/john # su - john -c "TestProgram"
上面将以用户john的身份运行命令或程序TestProgram。在上面的示例中,不会提示您输入密码,因为这个命令是由根用户执行的。
su可用选项
-, -l, --login make the shell a login shell
-c, --command=COMMAND pass a single COMMAND to the shell with -c
--session-command=COMMAND pass a single COMMAND to the shell with -c
and do not create a new session
-f, --fast pass -f to the shell (for csh or tcsh)
-m, --preserve-environment do not reset environment variables
-p same as -m
-s, --shell=SHELL run SHELL if /etc/shells allows it
--help display this help and exit
--version output version information and exit

