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