我有一个程序(https://github.com/raboof/connbeat),它依赖于/proc/[pid]/fd/*
查找给定(网络)inode 的进程。
/proc/[pid]/fd
只能由root读取,但为了安全起见,我想尽可能地放弃特权。
有没有什么方法可以(有效地)获得进程和 inode 之间的关系,而不需要完全的 root 权限?也许一些系统调用可以让我有选择地访问使用功能?
我有一个程序(https://github.com/raboof/connbeat),它依赖于/proc/[pid]/fd/*
查找给定(网络)inode 的进程。
/proc/[pid]/fd
只能由root读取,但为了安全起见,我想尽可能地放弃特权。
有没有什么方法可以(有效地)获得进程和 inode 之间的关系,而不需要完全的 root 权限?也许一些系统调用可以让我有选择地访问使用功能?
为了能够读取您需要的所有进程的 fd:
您可以将程序限制为仅使用这两种功能。然后,您可以使用普通 API 调用(如readdir()
或readlink()
或其他任何您喜欢的方式)访问相关信息。
有关这两种功能的更广泛描述,请参阅功能 (7)