读/ proc / / FD / 没有完全root权限

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读/ proc / / FD / 没有完全root权限相关的知识,希望对你有一定的参考价值。

我有一个程序(https://github.com/raboof/connbeat)依赖于/proc/[pid]/fd/*来查找给定(网络)inode的进程。

/proc/[pid]/fd只能由root读取,但我想尽可能地删除权限以保证安全性。

有没有什么方法可以(有效地)获得进程和inode之间的关系,而无需完全root权限?也许有些系统调用,我可以有选择地提供使用功能的访问权限?

答案

能够读取您需要的所有过程的fd:

  • CAP_DAC_READ_SEARCH - 用于访问/ proc / [pid] / fd
  • CAP_SYS_PTRACE - 读取/ proc / [pid] / fd / *下的符号链接

您可以将程序限制为仅这两种功能。然后,您可以使用常见的API调用(如readdir()readlink()或您喜欢的任何其他内容)访问相关信息。

有关这两种功能的更广泛描述,请参阅capabilities(7)

以上是关于读/ proc / / FD / 没有完全root权限的主要内容,如果未能解决你的问题,请参考以下文章

网络协议原理

网络协议原理

如何访问proc/pid/mem

处理/ proc / pid / fd /#链接的创建和删除的Linux内核代码在哪里?

IO重定向

linux /proc/[pid]/fd 中socket描述符后面的数字是什么意思?inode(information node)