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

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
S
Security @ Cisco Blogs
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Cisco Talos Blog
Cisco Talos Blog
Cyberwarzone
Cyberwarzone
SecWiki News
SecWiki News
Webroot Blog
Webroot Blog
L
LINUX DO - 最新话题
V
Vulnerabilities – Threatpost
T
Troy Hunt's Blog
Cloudbric
Cloudbric
L
LINUX DO - 热门话题
Google DeepMind News
Google DeepMind News
H
Heimdal Security Blog
S
Schneier on Security
NISL@THU
NISL@THU
The Hacker News
The Hacker News
Attack and Defense Labs
Attack and Defense Labs
A
Arctic Wolf
V2EX - 技术
V2EX - 技术
Security Latest
Security Latest
AWS News Blog
AWS News Blog
Scott Helme
Scott Helme
W
WeLiveSecurity
S
Secure Thoughts
Y
Y Combinator Blog
GbyAI
GbyAI
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - Franky
量子位
人人都是产品经理
人人都是产品经理
雷峰网
雷峰网
K
Kaspersky official blog
P
Privacy & Cybersecurity Law Blog
T
Tenable Blog
The GitHub Blog
The GitHub Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
J
Java Code Geeks
Vercel News
Vercel News
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Schneier on Security
Schneier on Security
云风的 BLOG
云风的 BLOG
小众软件
小众软件
Engineering at Meta
Engineering at Meta
宝玉的分享
宝玉的分享
C
CERT Recently Published Vulnerability Notes
Security Archives - TechRepublic
Security Archives - TechRepublic
C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Palo Alto Networks Blog

博客园 - 季石磊

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