【发布时间】:2021-03-27 07:20:09
【问题描述】:
我正在通过打开 /proc/pid/mem 从 python 脚本读取其他进程内存:
reader = open(f'/proc/{pid}/mem', 'rb')
然后从随机位置读取:
reader.seek(address, 0)
memory_content = reader.read(length)
一切都很好,但事实上,要打开 /proc/pid/mem 我必须 sudo 整个 python 脚本。当然,为了理智,我不想那样做。我有哪些选择?
- 如果我理解正确,我不能
sudo chmod /proc/pid/mem允许所有人从该进程内存中读取(请纠正我,如果我错了) - 我不能
open来自非 root python 脚本的具有 root 权限的单个文件(再次,如果我错了,请纠正我)
也许我可以创建某种指向 /proc/pid/mem 的硬链接,它看起来像一个不需要 root 访问权限即可读取的文件?
或者也许最简单的方法是创建一个代理程序,该程序将从具有 root 权限的实际 python 脚本运行,该程序将从 /proc/pid/mem 读取,并且我会以某种方式与它进行跨进程交互?
【问题讨论】:
-
权限在inode本身,所有链接都使用同一个inode。
-
你最后描述的代理方法可能是最好的方法。