没有完全root访问权限,读取/ proc / <pid> / fd / <fd>

时间:2017-01-13 10:04:06

标签: linux security linux-kernel root linux-capabilities

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

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

是否有某些方法可以(有效地)获取进程和inode之间的关系而无需完全root权限?也许有些系统调用可以选择性地授予使用功能的权限吗?

1 个答案:

答案 0 :(得分:2)

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

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

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

有关这两项功能的更详细说明,请参阅capabilities(7)