如何更改/proc/pid/mem的权限?

如何更改/proc/pid/mem的权限?

作为一个个人项目,我正在 Haskell 中编写一个小工具来模仿扫描内存

  1. 扫描 /proc/pid/maps 以获取虚拟内存区域
  2. 扫描 /proc/pid/mem 以提取具有给定值的内存区域

它仍处于开发早期,所以我仍然非常依赖 cabal repl,它允许我修改我的代码,然后立即进入交互式 ghci 环境来运行它。不幸的是,由于读取 /proc/pid/mem 需要 sudo 权限,因此我需要以 sudo 身份运行 cabal repl。强烈建议不要这样做。我认为每次进行微小更改时都必须构建整个代码的替代方法是更改​​特定 /proc/pid/mem 的权限,以便任何用户都可以拥有此文件的读取权限。我将在这个特定文件上进行所有调试。

不幸的是,当我尝试跑步时

sudo chmod 644 mem

我得到了结果:chmod: changing permissions of 'mem': Operation not permitted

难道这个想法只是徒劳吗?

非常感谢!

答案1

您无法更改 的权限/proc/…/mem,它们是由内核强制执行的。

对于您的开发工作,您应该能够使用您的用户正在运行的任何进程;您将能够访问/proc/…/mem以您的用户身份运行的进程。 (scanmem也可以这样做——如果你给它一个以你的用户身份运行的进程的 pid,它会分析它,而不需要以 root 身份运行)。如果您尝试扫描所有进程,请跳过那些mem文件不可读的进程。

相关内容