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

推荐订阅源

U
Unit 42
S
Security Affairs
Engineering at Meta
Engineering at Meta
MongoDB | Blog
MongoDB | Blog
Microsoft Security Blog
Microsoft Security Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
美团技术团队
月光博客
月光博客
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
有赞技术团队
有赞技术团队
博客园 - 叶小钗
Hugging Face - Blog
Hugging Face - Blog
Microsoft Azure Blog
Microsoft Azure Blog
V
V2EX
Vercel News
Vercel News
阮一峰的网络日志
阮一峰的网络日志
腾讯CDC
C
Cisco Blogs
T
Tor Project blog
The Hacker News
The Hacker News
雷峰网
雷峰网
MyScale Blog
MyScale Blog
博客园 - 司徒正美
AWS News Blog
AWS News Blog
GbyAI
GbyAI
Y
Y Combinator Blog
D
DataBreaches.Net
Simon Willison's Weblog
Simon Willison's Weblog
S
Securelist
The GitHub Blog
The GitHub Blog
S
SegmentFault 最新的问题
T
Tenable Blog
L
LangChain Blog
M
MIT News - Artificial intelligence
N
Netflix TechBlog - Medium
The Cloudflare Blog
A
About on SuperTechFans
IT之家
IT之家
F
Fortinet All Blogs
Security Latest
Security Latest
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
NISL@THU
NISL@THU
爱范儿
爱范儿
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
W
WeLiveSecurity
A
Arctic Wolf
I
Intezer
Application and Cybersecurity Blog
Application and Cybersecurity 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