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
相关文章
- python多线程扫描爆破网站服务器思路【笔记】
- python os.chdir() 用法
- Python当前进程信息 (os包)
- Python当前进程信息 (os包)
- Python当前进程信息 (os包)
- python解决迅雷下载限制的方法
- [Python] Problem with Default Arguments
- Python每日一练(20230403)
- Python OS库详解(二)——OS库之进程管理和环境参数
- 总结下利用python赚钱的方法,在闲余时间月赚2k-5k
- Python编程语言学习:python语言中快速查询python自带模块&函数的用法及其属性方法、如何查询某个函数&关键词的用法、输出一个类或者实例化对象的所有属性和方法名之详细攻略
- Python之ffmpeg:利用python编程基于ffmpeg将m4a格式音频文件转为mp3格式文件
- Python语言学习:在python中,如何获取变量的本身字符串名字而非其值/内容及其应用(在代码中如何查找同值的所有变量名)
- 机器学习实战分享:用 Python 进行信用卡欺诈检测
- Python编程:pyenv管理多个python版本环境
- Python编程:fnmatch匹配文件名
- python 将一个JSON 字典转换为一个Python 对象
- mac os 安装PIP 及异常“”Can't install python module: PyCharm Error: “byte-compiling is disabled, skipping”“”的解决方案
- python 多进程练习 调用 os.system命令
- Python语言基础学习之Python基础之列表介绍和循环遍历