Python当前进程信息 (os包)
我们在Linux的概念与体系,多次提及进程的重要性。Python的os包中有查询和修改进程信息的函数。学习Python的这些工具也有助于理解Linux体系。
进程信息
os包中相关函数如下:
uname() 返回操作系统相关信息。类似于Linux上的uname命令。
umask() 设置该进程创建文件时的权限mask。类似于Linux上的umask命令,见Linux文件管理背景知识
get*() 查询 (*由以下代替)
put*() 设置 (*由以下代替)
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如我们在Linux用户与“最小权限”原则中描述的那样工作,但这很难。原因在于,当我们写一个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位 (参考Linux用户与“最小权限”原则)
$sudo chmod 6755 /usr/bin/python
/usr/bin/python的权限成为:
-rwsr-sr-x root root
随后,我们运行文件下面test.py文件,这个文件可以是由普通用户vamei所有:
import os
print(os.getresuid())
我们得到结果:
(1000, 0, 0)
上面分别是UID,EUID,saved UID。我们只用执行一个由普通用户拥有的python脚本,就可以得到super
user的权限!所以,这样做是极度危险的,我们相当于交出了系统的保护系统。想像一下Python强大的功能,别人现在可以用这些强大的功能作为攻击你的武器了!使用下面命令来恢复到从前:数据分析师培训
$sudo chmod 0755 /usr/bin/python
相关文章
- ArcGIS Python 编码问题
- Python Post img
- python使用os.listdir和os.walk获得文件的路径
- Python 日期和时间_python 当前日期时间_python日期格式化
- 【学习总结】Python-3- 类型判断之 isinstance 和 type 的区别
- Python 用os和win32api库模仿DOS命令dir (完整实例)
- paip.编程语言方法重载实现的原理及python,php,js中实现方法重载
- 给刚入行Python的福利,一个Python高效薅羊毛工具,请低调使用。
- Python入门——针对零基础学习者的资料推荐
- Python编程语言学习:os模块/sys模块用法之获取当前系统环境的所有变量及其对应值、添加新的系统环境变量地址等案例之详细攻略
- Python之pandas:利用多种方法获取dataframe格式数据的最小值、最大值、自定义分位数(如1/4分位数、3/4分位数等)之详细攻略
- Python之Pandas:pandas.DataFrame()函数的简介、具体案例、使用方法详细攻略
- Python:python语言中与时间有关的库函数简介、安装、使用方法(获取当前时间/计算程序块前后运行时间/模型训练时间或耗费时间)之详细攻略
- Python语言学习:解决python版本升级问题集合(python2系列→Python3系列)导致错误的总结集合
- Python:利用python代码编程实现将视频的avi格式转换为MP4格式
- 学Python什么时候都不晚,献给每一个对现状不满的奋斗者
- 〖Python零基础入门篇㉑〗- 字符串的转义字符
- 【准确率100%】用Python制作答题脚本,分分钟得满分
- Python编程:查看python环境支持的whl
- python web py入门(27)- javascript的算术运算的综合练习
- python自动化测试学习-Python测试框架之unittest和pytest
- 【Leetcode刷题Python】216. 组合总和 III
- 炸弹人小游戏代码开源(python)
- Python——类