本文主要是介绍焕然一新的 su,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
焕然一新的 su
- 焕然一新的 su
- 命令格式
- 切换到用于user执行命令command
- 切换使用的SHELL
- 加与不加-的区别还是有的 su [user] 和 su - [user]
焕然一新的 su
su
的官方定义为:
su - run a command with substitute user and group ID
一言以蔽之,su - user
能切换到一个用户中去执行一个指令或脚本,而 su
应该是switch user的概念,这个命令可以让我们开启一个进程,赋予新的身份、用户ID、组ID等关联的各种读写访问权限。
所以,理所当然是需要密码的介入的。
而如果没有user的参数,默认就是进入到root账户了。
命令格式
该命令格式如下所示:
$ 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命令
$ su - user -c ls
切换使用的SHELL
不同的人,可能对不同的SHELL情有独钟,A喜欢bash,B可能喜欢csh,这个就可以通过-s来切换,如下可以切换到csh
$ 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]
则是完整的切换到新的用户环境。
如:
$ pwd
/root$ su oper
$ pwd
/root$ su - oper
Password:
$ pwd
/home/oper
所以大家在切换用户时,尽量用su - [user],否则可能会出现环境变量不对的问题。
这篇关于焕然一新的 su的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!