Я написал модуль ядра, который читает и записывает /proc
файлы, и он работает нормально. Теперь я хочу использовать разрешения с ним, но когда я пишу функцию для разрешений, показанных ниже, это дает мне ошибку. Цель состоит в том, чтобы каждый мог прочитать файл, но только root может писать в него.
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
определяется # get_current()
. Почему это происходит? Есть ли список членов структуры, возвращенный из get_current()
?