博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python标准库09 当前进程信息 (os包)
阅读量:4619 次
发布时间:2019-06-09

本文共 1520 字,大约阅读时间需要 5 分钟。

 

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

 

我们在,多次提及进程的重要性。Python的os包中有查询和修改进程信息的函数。学习Python的这些工具也有助于理解Linux体系。

 

进程信息

os包中相关函数如下:

uname() 返回操作系统相关信息。类似于Linux上的uname命令。

umask() 设置该进程创建文件时的权限mask。类似于Linux上的umask命令,见

 

get*() 查询 (*由以下代替)

    uid, euid, resuid, gid, egid, resgid :权限相关,其中resuid主要用来返回saved UID。相关介绍见

    pid, pgid, ppid, sid                 :进程相关。相关介绍见

 

put*() 设置 (*由以下代替)

    euid, egid: 用于更改euid,egid。

    uid, gid  : 改变进程的uid, gid。只有super user才有权改变进程uid和gid (意味着要以$sudo python的方式运行Python)。

    pgid, sid : 改变进程所在的进程组(process group)和会话(session)。

 

getenviron():获得进程的环境变量

setenviron():更改进程的环境变量

 

例1,进程的real UID和real GID

import os print(os.getuid())print(os.getgid())

将上面的程序保存为py_id.py文件,分别用$python py_id.py和$sudo python py_id.py看一下运行结果

 

saved UID和saved GID

我们希望saved UID和saved GID如我们在中描述的那样工作,但这很难。原因在于,当我们写一个Python脚本后,我们实际运行的是python这个解释器,而不是Python脚本文件。对比C,C语言直接运行由C语言编译成的执行文件。我们必须更改python解释器本身的权限来运用saved UID机制,然而这么做又是异常危险的。

比如说,我们的python执行文件为/usr/bin/python (你可以通过$which python获知)

我们先看一下

$ls -l /usr/bin/python

的结果:

-rwxr-xr-x root root

 

我们修改权限以设置set UID和set GID位 (参考)

$sudo chmod 6755 /usr/bin/python

/usr/bin/python的权限成为:

-rwsr-sr-x root root

 

随后,我们运行文件下面test.py文件,这个文件可以是由普通用户vamei所有:

import osprint(os.getresuid())

我们得到结果:

(1000, 0, 0)

上面分别是UID,EUID,saved UID。我们只用执行一个由普通用户拥有的python脚本,就可以得到super user的权限!所以,这样做是极度危险的,我们相当于交出了系统的保护系统。想像一下Python强大的功能,别人现在可以用这些强大的功能作为攻击你的武器了!使用下面命令来恢复到从前:

$sudo chmod 0755 /usr/bin/python

 

关于脚本文件的saved UID/GID,更加详细的讨论见

 

总结

get*, set*

umask(), uname()

转载于:https://www.cnblogs.com/ching2009/p/5088588.html

你可能感兴趣的文章
短信接口
查看>>
EF提示“序列化类型为XXX的对象时检测到循环引用”(转载)
查看>>
Java语言编程 - Java历史简介
查看>>
微服务架构 - 离线部署k8s平台并部署测试实例
查看>>
第五章 继承
查看>>
python设置windows桌面壁纸
查看>>
js的reduce方法,改变头等函数
查看>>
matlab绘图
查看>>
能匹配C语言注释的正则表达式
查看>>
CLR Via CSharp----------Delegate&Lambda
查看>>
亚马逊正加紧布局 拟今年进军韩国市场
查看>>
[LaTeX配置教程]sublime+MikTeX+SumatraPDF及反向搜索
查看>>
WPF 在XP系统的兼容问题
查看>>
WPF学习笔记
查看>>
functools下的partial模块应用
查看>>
css实现h5页面滚动效果
查看>>
如何恢复低版本的FlashPlayer
查看>>
使用 IntraWeb (5) - 页面布局之 TFrame
查看>>
bash调试执行
查看>>
软件构造 第七章第五节 测试
查看>>