如何在没有 sudo 的情况下读取 /proc/PID/maps ?

如何在没有 sudo 的情况下读取 /proc/PID/maps ?

我想在不使用 sudo 的情况下读取某些进程的内存映射(/proc/PID/maps)。这是微不足道的,除非该过程有能力。明白了吗:

如果我运行:

$ bash
$ cat /proc/$$/maps

这有效,我得到了输出!

但如果我跑:

sudo setcap "cap_net_raw+p" /bin/bash

并再次尝试测试用例:

$ bash
$ cat /proc/$$/maps

我得到:

cat: /proc/1151842/maps: Permission denied

我希望这是可以理解的。

感谢您的帮助

答案1

/proc/ 中文件的所有权由 Linux 内核中的“dumpable”标志控制,该标志用于防止将信息从特权进程泄漏给非特权用户。

当进程获得功能时,它会升级为特权进程,并且 /proc/ 现在由 root 拥有。

回答于: 通过添加功能而失去权限?如何读取具有linux功能的进程的/proc/<pid>/fd目录?

相关内容