linux内核编程 - 创建文件或使用root权限打开文件

时间:2016-07-03 16:47:24

标签: linux-kernel

我正在创建自己的系统调用和 我正在使用此链接中的函数How to read/write files within a Linux kernel module? 阅读和写入文件

问题是当非root用户调用我的新系统调用时,这些函数不起作用。

选项包括:在调用这些函数之前设置root权限 或者在调用这些函数之前创建具有权限777的文件 也许有更多的选择

但我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

您需要以某种方式模拟setfsuid调用(无需权限检查),执行open并恢复当前进程的fsuid。更改FS UID然后允许您实际调用open syscall,自己使用文件描述符(警告:用户代码也能够使用该文件描述符!),然后恢复FS UID减少文件的安全漏洞你正在使用的描述符。建议您在返回用户空间之前关闭文件。