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