如何获得当前进程的用户

时间:2013-02-27 09:29:32

标签: c linux linux-kernel

使用struct task_struct http://lxr.linux.no/linux+v2.6.30.5/include/linux/sched.h#L246中定义的流程如何获取当前用户?我必须检查用户是否是root用户。我显然不能使用getuid

3 个答案:

答案 0 :(得分:2)

您可以使用task_uid获取task_structtask_euid的用户ID,如果您需要的话。{/ p>

答案 1 :(得分:0)

尝试使用getlogin_r()功能。它在unistd.h中定义并返回用户名。有关其他选项,请查看man getlogin_r

int getlogin_r(char *buf, size_t bufsize);

答案 2 :(得分:0)

最终使用了成员变量uid_t uid,我最初没有看到。检查我正在使用的linux版本(旧)并在此处找到它:http://lxr.linux.no/linux+v2.6.18/include/linux/sched.h#L246

对不起麻烦

相关问题