从 task_struct 和 pid_namespace 获取用户 ID 和进程组 ID
Getting a user ID and a process group ID from a task_struct and a pid_namespace
我正在尝试修改 Linux 内核,我需要从 task_struct
和 pid_namespace
获取用户 ID 和进程组 ID。虽然我在源代码中搜索了它们的定义,但我找不到任何全局变量或函数(可能是因为代码中缺少注释而我丢失了)来访问它们。
有没有一种方法可以将它们放入内核 space 因为我不能使用像 getuid()
等用户 space 函数?
您应该可以使用 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 行。
我正在尝试修改 Linux 内核,我需要从 task_struct
和 pid_namespace
获取用户 ID 和进程组 ID。虽然我在源代码中搜索了它们的定义,但我找不到任何全局变量或函数(可能是因为代码中缺少注释而我丢失了)来访问它们。
有没有一种方法可以将它们放入内核 space 因为我不能使用像 getuid()
等用户 space 函数?
您应该可以使用 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 行。