如何访问用户空间的user_struct中的数据

如何访问用户空间的user_struct中的数据

有什么方法可以通过现有命令或 API 来从 Linux 用户空间的 user_struct 获取信息吗?

即,能够获取由 ULIMITS 控制的用户当前打开的文件和任务的数量

答案1

我查看了内核源代码(特别是linux/用户.c我没有找到任何系统调用定义或/proc条目管理......

所以我猜没有 API 可以做到这一点:-(

所以你有2个解决方案:

  • 您可以开发一个内核模块来为每个用户实现一个`/proc/̀ 条目,该条目将转储这些统计信息。

  • 您可以解析/proc/<pid/条目(目录由进程所有者拥有),并且对于目标用户拥有的每个进程,解析fdstat等...文件。

答案2

一个简单的

man ulimit

为您提供用户限制的一般描述,以及(在联机帮助页底部)“另请参阅”部分。在那里你可以找到:

获取限制(2)

这意味着,有一个名为“getrlimit()”的系统调用(联机帮助页第 2 节)。所以,当你做一个

man 2 getrlimit

您将获得检索用户限制结构所需的所有信息。

相关内容