惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MyScale Blog
MyScale Blog
U
Unit 42
The Register - Security
The Register - Security
S
Security Affairs
博客园 - 【当耐特】
Latest news
Latest news
爱范儿
爱范儿
T
The Exploit Database - CXSecurity.com
F
Full Disclosure
C
Cisco Blogs
宝玉的分享
宝玉的分享
C
Cyber Attacks, Cyber Crime and Cyber Security
L
LangChain Blog
P
Privacy & Cybersecurity Law Blog
腾讯CDC
C
CXSECURITY Database RSS Feed - CXSecurity.com
V
Vulnerabilities – Threatpost
Jina AI
Jina AI
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 叶小钗
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园_首页
博客园 - 三生石上(FineUI控件)
D
DataBreaches.Net
WordPress大学
WordPress大学
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Microsoft Security Blog
Microsoft Security Blog
N
News and Events Feed by Topic
Recorded Future
Recorded Future
Scott Helme
Scott Helme
Hacker News: Ask HN
Hacker News: Ask HN
Webroot Blog
Webroot Blog
AWS News Blog
AWS News Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
人人都是产品经理
人人都是产品经理
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Tor Project blog
F
Fortinet All Blogs
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
H
Hacker News: Front Page
J
Java Code Geeks
A
About on SuperTechFans
The GitHub Blog
The GitHub Blog
博客园 - 聂微东
Last Week in AI
Last Week in AI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
W
WeLiveSecurity
V2EX - 技术
V2EX - 技术
T
Troy Hunt's Blog
Attack and Defense Labs
Attack and Defense Labs

博客园 - 季石磊

jps 报process information unavailable解决办法 Jobtracker重启Job recovery过程分析 hadoop & hbase 上下线 Hbase性能优化 Poor performance running Hadoop on RHEL 6.2 or later when transparent hugepage compaction is enabled ldconfig几个需要注意的地方[转] [转]HBase性能优化方法总结 centos 查看版本 关于Hbase集群需要使用DNS域名解析的体会 修改Hadoop集群的备份数 [转载]ext4的noatime 指定HADOOP_HOME位置的三种方法 Windows下 Python 安装包的配置 django1.4测试环境 css样式,图片路径问题解决 CentOS 6安装JDK及系统配置 mapreduce程序运行避免手动删除output目录 HDFS配置设置 Hadoop运维操作 HDFS Permissions & Acls
Python用subprocess的Popen实现用户切换
季石磊 · 2013-01-17 · via 博客园 - 季石磊

当我们需要调用系统的命令的时候,最先考虑的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