在内核程序中获取root用户ID并与当前用户ID进行比较

时间:2015-01-09 17:56:49

标签: c linux kernel root

我们知道,root uid为0.所以我试着将当前进程uid与0进行比较,如下所示:

uid_eq(get_current_cred()->uid, 0)

然而,'uid_eq'的参数2 不兼容类型

我也试过

uid_eq(get_current_cred()->uid, (kuid_t)0)

但这也会导致此错误:转换为请求的非标量类型

我应该如何检查当前进程是否是内核中的root用户?谢谢。

1 个答案:

答案 0 :(得分:2)

kuid_t是一个结构,因此您应该声明一个,并将其val成员设置为0

试试这个

kuid_t rootUid;

rootUid.val = 0;
uid_eq(get_current_cred()->uid, rootUid);