linux - 无需完全 root 访问权限即可读取/proc/<pid>/fd/<fd>

标签 linux security linux-kernel root linux-capabilities

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

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

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

最佳答案

为了能够读取您需要的所有进程的文件描述符:

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

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

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

关于linux - 无需完全 root 访问权限即可读取/proc/<pid>/fd/<fd>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41631927/

相关文章:

linux - 绕过 Rsync 提示 "Are you sure you want to continue connecting"

security - Meteor 帐户自动登录模式?

android - 从 Android 读取计算机的 RSA key 指纹

c - liburing/IORING_OP_PROVIDE_BUFFERS - 分配给读取操作的错误缓冲区

linux - 防止覆盖 char 驱动程序 linux 的 WRITE 函数

linux - 使用 Ubuntu 每秒多次写入将数据附加到 1 GB 文件,没有性能问题。可能的?

linux - Linux Mint 上的 Sublime Text 2

linux - 生成映射的 D2RQ 参数

security - 双因素身份验证如何与随机数一起使用?

linux - 在 RHEL v5 64 位中为 CentOS 安装 DRBD 二进制包