因为module_init和你的钩子代码在不同的进程中运行.不同的流程之间有不同的权限.

通常,代码必须在进程中运行.

module_init总是在insmoding模块期间运行(参见sys_init_module函数).在insmod内核模块时,您必须是root.而且这个过程也是根源.它运行良好.

但是当您将代码放入IDT时,它可能会在用户进程中运行,因为用户进程会触发中断.所以它有一个-EPERM.

您可以在代码中查看euid,uid,pid和comm.像这样:

int hook_func()

{

printk(KERN_INFO"Code Called in hook_func. My pid: %d,comm: %s,uid: %d,euid: %d\n",current->tgid,current->comm,current->cred->uid,current->cred->euid);

...

}

int my_init()

{

printk(KERN_INFO"Code Called in my_init. My pid: %d,current->cred->euid);

...

}

module_init(my_init);

linux 内核 权限,linux – 内核模块执行中的不同权限相关推荐

  1. 【Linux 内核】编译 Linux 内核 ④ ( 打开 Linux 内核编译 菜单配置 |菜单配置中的光标移动与选中状态 | 保存配置 | 配置项帮助文档 )

    文章目录 一.打开 Linux 内核编译 菜单配置 二.菜单配置中的光标移动与选中状态 三.保存配置 四.配置项帮助文档 一.打开 Linux 内核编译 菜单配置 执行 make menuconfig ...

  2. 【Linux 内核】Linux 操作系统结构 ( Linux 内核在操作系统中的层级 | Linux 内核子系统及关系 | 进程调度 | 内存管理 | 虚拟文件系统 | 网络管理 | 进程间通信 )

    文章目录 一.Linux 内核在操作系统中的层级 二.Linux 内核子系统 三.Linux 内核子系统之间的关系 一.Linux 内核在操作系统中的层级 Linux 内核 所在层级 : 整个计算机系 ...

  3. 【Linux 内核】Linux 内核特性 ( 组织形式 | 进程调度 | 内核线程 | 多平台虚拟内存管理 | 虚拟文件系统 | 内核模块机制 | 定制系统调用 | 网络模块架构 )

    文章目录 一.Linux 内核特性 1.Linux 内核组织形式 2.Linux 进程调度 3.Linux 内核线程 4.Linux 内核多平台虚拟内存管理 5.Linux 虚拟文件系统 6.Linu ...

  4. 一文看懂Linux内核!Linux内核架构和工作原理详解

    linux内核相关视频解析: 5个方面分析linux内核架构,让你对内核不再陌生 90分钟了解Linux内存架构,numa的优势,slab的实现,vmalloc的原理 手把手带你实现一个Linux内核 ...

  5. 深度:一文看懂Linux内核!Linux内核架构和工作原理详解

    简介 作用是将应用层序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址.目前支持模块的动态装卸(裁剪).Linux内核就是基于这个策略实现的.Linux进程1.采用层次结构,每个 ...

  6. linux 内核通知,[Linux] 内核通知链 notifier

    Linux 内核中每个模块之间都是独立的,如果模块需要感知其他模块的事件,就需要用到内核通知链. 最典型的通知链应用就是 LCD 和 TP 之间,TP 需要根据 LCD 的亮灭来控制是否打开关闭触摸功 ...

  7. 国嵌linux内核编程,linux内核--那些年看国嵌视频学习

    1.linux系统构成 由用户空间和内核空间构成.其中用户空间由应用程序和C库:内核空间由系统调用接口.kernel.架构代码.硬件设备平台 为什么linux系统会被划分为用户空间和内核空间?处于安全 ...

  8. 【Linux 内核】Linux 内核源码目录说明 ① ( arch 目录 | block 目录 | certs 目录 | crypto 目录 | Documentation 目录 )

    文章目录 一.arch 目录 二.block 目录 三.certs 目录 四.crypto 目录 五.Documentation 目录 在上一篇博客 [Linux 内核]Linux 内核源码结构 ( ...

  9. Linux内核和Linux发行版(了解)

    Linux内核和Linux发行版(了解) Linux内核:Linux内核是一种开放源码的操作系统,由Linux Torvalds(Linux之父)负责维护,提供硬件抽象层.硬盘及文件系统控制及多任务功 ...

最新文章

  1. 第1关:最长非降子序列(非连续)问题
  2. matplotlib如何绘制两点间连线_机器学习:Python常用库——Matplotlib库
  3. Vue Router webpack
  4. 【决策】Waymo无人出租车年底发射,现已进入定价环节 | 公交部门竟成友军?...
  5. oracle rac 通信端口,修改oracle 10g rac监听端口号为1523的步骤
  6. 序列赋值引发的Python列表陷进
  7. python人工智能——机器学习——分类算法-朴素贝叶斯算法对新闻进行分类案例
  8. Docker学习总结(35)——Docker全面认识再总结
  9. Atitit.如何选择技术职业方向
  10. Springboot thymeleaf i18n国际化多语言选择-2.业务流程内部返回 对应的语言
  11. 将类实现分开以及代码块
  12. 电子邮件系统是如何运作的?
  13. 计算机基础第五章知识,计算机基础第5次作业-第五章-Powerpoint知识题
  14. chrome浏览器安装和使用
  15. 动画(animation)属性详解
  16. php 正则 标点符号,js正则匹配中文标点符号
  17. Wildcard Matching 1
  18. 给童鞋萌康康关于代码块(static代码块)的小知识
  19. 选择合适的垃圾收集器
  20. html5绘制随机五角星_HTML5 canvas基本绘图之绘制五角星

热门文章

  1. 9.1 Python图像处理之图像数学形态学-二值形态学(腐蚀、膨胀、开启、闭合)
  2. linux下载文件到内存不足,有容乃大:Linux下轻松解决图片转PDF内存不足转换失败问题...
  3. 小程序定制,挑战百日学习计划第31天(3D骰子制作)
  4. php异步处理shell,如何在Linux和Windows环境中使用PHP执行Shell命令而无需等待结果(异步)...
  5. Elasticsearch从入门到放弃:浅谈算分
  6. 掘金系统源码搭建教程
  7. PCB电路板和集成电路的特点与区别
  8. 一起学爬虫(Python) — 08
  9. JSP、Servlet和Spring MVC
  10. 三本可以一买的 Python 书