【发布时间】:2013-02-13 01:07:46
【问题描述】:
使用struct task_struct http://lxr.linux.no/linux+v2.6.30.5/include/linux/sched.h#L246中定义的进程如何获取当前用户?我必须检查用户是否是root用户。我显然不能使用 getuid
【问题讨论】:
-
你打算做什么?你有任何代码可以显示吗?
标签: c linux linux-kernel
使用struct task_struct http://lxr.linux.no/linux+v2.6.30.5/include/linux/sched.h#L246中定义的进程如何获取当前用户?我必须检查用户是否是root用户。我显然不能使用 getuid
【问题讨论】:
标签: c linux linux-kernel
您可以使用task_uid 来获取task_struct 的用户ID,或者如果您需要的话,可以使用task_euid。
【讨论】:
试试getlogin_r() 函数。它在 unistd.h 中定义并返回用户名。查看man getlogin_r 了解其他选项。
int getlogin_r(char *buf, size_t bufsize);
【讨论】:
getlogin_r。
最终使用了一个成员变量 uid_t uid,我一开始并没有看到。检查了我使用的linux版本(旧)并在这里找到了它:http://lxr.linux.no/linux+v2.6.18/include/linux/sched.h#L246
对不起
【讨论】: