红联Linux门户
Linux帮助

linux驱动模块访问权限的控制

发布时间:2017-02-09 09:48:20来源:linux网站作者:eZiMu
简述:
在驱动模块,可以对没有权限的进程和应用程序拒绝访问,有权限的才允许访问。
 
权限控制接口:
bool capable(int cap);
 
定义头文件:
#include <linux/capability.h>
 
用法例子:
if (! capable (CAP_SYS_ADMIN))
return -EPERM;
 
capable()没有权限时返回0,有权限时返回1。
在file_opertions的接口函数open,read,write,llseek,mmap,ioctl等函数开始行,加入这么一段,就可以实现权限控制了。
CAP_SYS_ADMIN代表权限,表示一个捕获一全部的能力, 提供对许多系统管理操作的存取.
 
其他宏权限说明:
CAP_DAC_OVERRIDE:这个能力来推翻在文件和目录上的存取的限制(数据存取控制, 或者 DAC).
CAP_NET_ADMIN:进行网络管理任务的能力, 包括那些能够影响网络接口的.
CAP_SYS_MODULE:加载或去除内核模块的能力.
CAP_SYS_RAWIO:进行 “raw” I/O 操作的能力. 例子包括存取设备端口或者直接和 USB 设备通讯.
CAP_SYS_ADMIN:一个捕获-全部的能力, 提供对许多系统管理操作的存取.
CAP_SYS_TTY_CONFIG:进行 tty 配置任务的能力.
这些宏定义在include/uapi/Linux/capability.h中,实际include/linux/capability.h已经包含了。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/28265.html