gpt4 book ai didi

multithreading - 有没有办法从进程的 task_struct 中找出哪个用户拥有进程?

转载 作者:行者123 更新时间:2023-12-04 08:26:15 28 4
gpt4 key购买 nike

我有一个 task_struct *我通过调用 find_task_by_vpid(get_pid()) 得到的.我想弄清楚哪个用户拥有该进程,以便我可以在我正在编写的系统调用中进行一些权限检查,但要查看 task_struct源代码没有太大帮助。唯一看起来有用的是loginuid ,但由于某种原因,如果我尝试像这样访问它,内核将无法编译:my_task_struct->loginuid .是否有另一种方法可以让从 task_struct 调用该进程的用户? ?

最佳答案

不幸的是,用户/组 ID 不再存储在任务结构中,而是存储在一个单独的权限结构中,该结构在具有相同 ID 的所有任务之间动态分配和共享。这反过来又造成了 setuid 的情况。可能由于资源耗尽和 setuid 的失败而失败支持特权是臭名昭著的漏洞来源......

无论如何,它在 task_struct 的这些成员中:

    const struct cred __rcu *real_cred; /* objective and real subjective task
* credentials (COW) */
const struct cred __rcu *cred; /* effective (overridable) subjective task
* credentials (COW) */

关于multithreading - 有没有办法从进程的 task_struct 中找出哪个用户拥有进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13104803/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com