Я написал модуль ядра, который читает и записывает файлы /proc
, и он работает нормально. Теперь я хочу использовать с ним права, но когда я пишу функцию для разрешений, показанных ниже, она дает мне ошибку. Цель состоит в том, чтобы каждый мог читать файл, но только root может писать ему.Что возвращает get_current() в этом модуле ядра?
int my_permission(struct inode *inode, int op)
{
if(op == 4||(op == 2 && current->euid = 0)) //euid is not a member of task_struct
return 0;
return -EACCES;
}
const struct inode_operations my_iops = {
.permission = my_permission,
};
Ошибка я получаю:
/home/karan/practice/procf/testproc1.c: In function ‘my_permission’:
/home/karan/practice/procf/testproc1.c:50:32: error: ‘struct task_struct’ has no member named ‘euid'
Я знаю, что current
это с помощью #define в get_current()
. Почему это происходит? Есть ли список членов структуры, возвращаемых с get_current()
?