Python用subprocess的Popen实现用户切换
当我们需要调用系统的命令的时候,最先考虑的os模块。用os.system()和os.popen()来进行操作,很多时候需要进行用户身份模拟或者用户切换,通过设置subprocess中的Popen的env变量可以实现相关功能。
创建一个可以执行文件,文件命名为:echoenv.py,该文件的作用是显示当前系统用户,文件内容如下:
import os print(os.environ['USER'])
执行代码如下:
>>>import shlex, subprocess >>>command_line = raw_input() >>>python echoenv.py >>>args = shlex.split(command_line) >>>print args >>>p = subprocess.Popen(args) 显示结果: >>>root >>>env={'USER':'abc'} >>>p = subprocess.Popen(args,env=env) 显示结果: >>>abc