Linux系统下Capabilities机制的改进与完善.pdf

Linux系统下Capabilities机制的改进与完善.pdf

ID:51494899

大小:313.75 KB

页数:4页

时间:2020-03-25

Linux系统下Capabilities机制的改进与完善.pdf_第1页
Linux系统下Capabilities机制的改进与完善.pdf_第2页
Linux系统下Capabilities机制的改进与完善.pdf_第3页
Linux系统下Capabilities机制的改进与完善.pdf_第4页
资源描述:

《Linux系统下Capabilities机制的改进与完善.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、万方数据第26卷2006年6月计算机应用Co瑚【puterApplicationsV01。26June2006文章编号:1001—9081(2006)06Z—0171一02“nux系统下C印ab舭ies机制的改进与完善郎韶华1,罗军勇1,贾遂民2(1.信息工程大学网络工程系,河南郑州450002;2.郑州师范高等专科学院,河南郑州450002)(smmewnter@163.com)摘要:介绍了在Linux系统下对Capabilities所作的改进与完善,使用户能够方便地利用c印abilities机制来提高Linux系统的安全。改进主要有两个方面:(

2、1)实现了可执行文件的权能,使用户可通过配置可执行文件的权能来灵活控制相应进程拥有的权能范围;(2)对系统赋予进程权能的策略(即进程权能计算公式)进行了改进,从而实现了在只有一种权能配置的情况下,不同用户的进程在执行同一程序时可以拥有不同的权能。关键词:“nux操作系统;权能访问控制;用户权能中图分类号:’rP316;TP393.08文献标识码:A在老版本的unux操作系统中,进程的特权操作是根据进程的有效用户身份来进行访问控制的。比如,以root为有效用户身份的每个进程,不管需不需要,都拥有系统所有的特权。而在大多数情况下,进程完成其服务功能时并

3、不需要特权,或仅仅需要很少的几种特权,拥有多余特权对系统安全总是不利的。c叩abilmes是Linux操作系统对特权操作进行访问控制的一种安全机制,它是针对上述问题而提出来的,目的在于实现一种更加细粒度的特权操作的访问控制,使用户能够根据实际的安全需要来控制一个进程拥有的特权范围,从而取消进程的多余特权,避免多余特权带来的安全隐患∞一。1实现可执行文件的权能要实现可执行文件权能,首先必须解决可执行文件权能信息的存储问题[1]。将可执行文件权能信息存放于文件的inode节点,会引起文件系统的不兼容;而将可执行文件权能信息组织存放于文件的数据部分,又会

4、引起可执行文件格式的不兼容¨1。鉴于上述原因,解决方法是将系统所有可执行文件的权能信息集中存放于系统中的一个文件,它不仅不会引起文件系统或可执行文件格式的不兼容,而且非常方便,有利于可执行文件权能信息的集中管理和保护。将集中存放可执行文件权能信息的系统文件称为“权能配置文件”。1.1可执行文件权能信息的描述我们用下面的数据结构来描述可执行文件的权能信息:structlist—head{smlctli8Lhead·next,+preV;);stmctexe—c印j(structIi8Lheadhash;un8igned8honidev;unsigne

5、dIongino;unsi驴ed10ngfP,fE,fI;);其中,h鹊h为一个双向链表头结构;idev为文件存放的设备号;jno为文件的inode号;伊、Ⅱ、厄则表示可执行文件的三组权能集。设置h船h链表域的目的主要是为了能将可执行文件的权能信息以h鹊h链表的形式组织存放于内核,使系统可以使用h私h查找算法来快速获得可执行文件权能信息,从而加快权能信息的查询速度心】。用文件的设备号与文件号一起可用来索引文件的权能信息。1.2内核权能信息库的建立将h船h链表的大小设置为2lo舀(』\r+1)(其中Ⅳ表示权能信息记录的总个数)。采用的hash查找算法

6、为:以可执行文件的inode节点号和设备号为输入,两者之和经过折半处理后整理为不超过hash链表大小的一个数作为输出。实现代码如下:unsigned10ngt“p,h∞h一8hm,h∞h—m∞k;stnlctfile}me:8nllctinode}inode:unsi弘ed10ngc印一num;/}权能信息记录的总数}/61e=矗ip一叩en(c印8』k—n硼e,o-RDoNLY,O);/-打开权能配置文件,/inode=file一>f_dentIy一>d—inode;cap-num=(un8i印ed10ng)(((unsignedlong)ino

7、de一>i—size)/sizeo“8tnlctexc—capj));hasn—shif【=O;/$计算h∞h链表数组大小+/wh丑e((cap—num>>=1UL)!=OUL)h88h—shift+十;hash—mask=(1<>ha8h一

8、8hift);retIlmtmp&h∞h~mask;}我们将在系统执行第一个用户进程(I面t()进程)之前建立权能h硒h链

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。