gpt4 book ai didi

linux-kernel - 如何唯一识别尝试打开()内核模块的用户?

转载 作者:行者123 更新时间:2023-12-04 06:52:39 25 4
gpt4 key购买 nike

我正在研究一个内核模块,我试图唯一地识别每个试图打开()模块的用户(可以是进程或线程)。

识别它们的最佳方法是什么?我可以从系统调用中获得一个 ID 吗?

我希望将所有用户放在一个列表中,该列表指定他们是否尝试打开模块进行读/写,并且我需要知道哪个用户尝试了操作。

最佳答案

我假设您正在创建一个简单的 Linux 字符设备,将在/dev/mydev 等位置创建。如果是这种情况,那么下面应该给你一个很好的例子来说明如何做到这一点。但是,如果您对打开设备有不同的含义,那么这将不适用。

你的 char 设备文件操作

struct file_operations mydev_fops = {
.open = mydev_open,
};

你的 mydev_open()
static int mydev_open(struct inode *inode, struct file *filp)
{
pid_t pid;
int user_id;

/* This is the thread-ID, traditional PID is found in current->pgid */
pid = current->pid;

/* The current user-id (as of 2.6.29) */
user_id = current_uid();
}

有关当前进程的更多信息,请查看头文件 include/linux/cred.h。

关于linux-kernel - 如何唯一识别尝试打开()内核模块的用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2898486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com