我正在尝试修改 Linux 内核,需要从 task_struct
和 pid_namespace
获取用户 ID 和进程组 ID。尽管我在源代码中搜索了它们的定义,但我找不到任何全局变量或函数(可能是因为代码中缺少注释而丢失了)来访问它们。
由于我无法使用诸如 getuid()
等用户空间函数,因此是否有一种方法可以在内核空间内获取这些函数?
最佳答案
您应该能够使用task_struct->cred->uid
或task_struct->real_cred->uid
。话虽这么说,我还没有对此进行测试,这只是粗略地阅读了 LXR(include/linux/sched.h 第 1508 行和 include/linux/cred.h 第 127 行)。
如果您需要 PGID,请尝试 pid_vnr(task_pgrp(task_struct))
。此代码来自 kernel/sys.c 第 990 行。
关于process - 从task_struct和pid_namespace获取用户ID和进程组ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33445815/