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

in kernel program get root user id and compare with current user id

我们知道root uid是0,所以我尝试用当前进程uid和0进行比较,如下:

uid_eq(get_current_cred()->uid, 0)

但是,我得到 参数 2 的“uid_eq”不兼容类型

我也试过了

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

但这也给出了这个 错误:请求转换为非标量类型

如何查看当前进程在内核中是否为root?谢谢。

kuid_t 是一个结构,所以你应该声明一个,并将它的 val 成员设置为 0.

试试这个

kuid_t rootUid;

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