【问题标题】:Read /proc/<pid>/fd/<fd> without full root access在没有完全根访问权限的情况下读取 /proc/<pid>/fd/<fd>
【发布时间】:2017-05-28 16:00:36
【问题描述】:

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

/proc/[pid]/fd 只能由 root 读取,但为了安全起见,我想尽可能地放弃特权。

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

【问题讨论】:

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


    【解决方案1】:

    为了能够读取您需要的所有进程的 fd:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-03
      • 1970-01-01
      • 2014-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多