现在的位置: 首页 >> 操作系统 >> FreeBSD >> FreeBSD 5.0中强制访问控制机制的使用与源代码分析 (1)
添加时间:2005-8-21 来源:网教中国 作者:
FreeBSD 5.0中强制访问控制机制的使用与源代码分析 (1)

extattrctl enable /tmp system mac_mls ./freebsd.mac

至此,/tmp文件系统的扩展属性配置完毕,我们可以尝试使用下面的命令来改变/tmp/test这个文件的MAC标记:

setfmac mls/high /tmp/test

1.4 操作MLS标记
和所有的系统功能一样,MLS标记既可以在控制台由命令来得到或设置,也可以在程序中通过系统调用来得到或进行设置,下面是对这两种方式的简单的介绍。

控制台命令主要有三个,即getfmac,用于得到文件或目录的MAC标记;setfmac用于设置文件或目录的MAC标记;getpmac,用于得到当前进程的MAC标记。另外的一个命令setpmac在当前系统中支持得不好。

如果使用的是MLS策略,那么返回的MAC标记为mls/[single_mac]([mac_range]),其中mls为策略名,后面用"/"与标记数据隔开。[single_mac]为单一的MAC标记,可能为"low"或"high"或"equal"。[mac_range]为一个MAC标记范围,往往主体(进程)有一个范围。一个MAC标记的例子为:mls/low(low-high)。

在应用程序中,可以使用的系统调用请参见/usr/src/sys/sys/mac.h文件中#ifndef _KERNEL这个块中提供的函数原型,值得注意的是,man page中的有些接口参数及返回值类型有误,请以mac.h文件中的类型为准。

下面是几个最常用的函数的使用方法:

mac_get_proc,mac_get_file的用法:

struct mac myMac; char ss[60] = "mls"; myMac.m_string = ss; myMac.m_buflen = 60; mac_get_proc(&myMac); mac_get_file("/tmp/test",&myMac);

mac_set_proc,mac_set_file的用法:

struct mac myMac; myMac.m_string = "mls/high"; myMac.m_buflen = strlen(myMac.m_string); mac_set_proc(&myMac); mac_set_file("/tmp/test",&myMac);

1.5 小结
由于FreeBSD 5.0RC2版才刚刚开始非正式地支持MAC,所以针对普通用户而言,要将其真正用起来,要做的工作还比较多比较烦琐的。对于MLS策略而言,还有很多值得完善的地方,比如现有的MLS策略不支持对用户设置MAC标记,主体对客体访问的时候限制过多,还有MLS不支持可信进程等等,都是下一个版本需要完善的。

在使用上,从我个人的使用经验来看,比较不好用。当然,这个问题不能全怪系统,MLS策略导致易用性降低已经是不争的事实,相信经过一段时间的开发,最终会给我们一个满意的答案。

但是瑕不掩玉,撇开MLS,单看MAC框架,应该说是设计得很完美的:良好的结构、清晰的逻辑、非常简洁的接口,这些优点应该来说可以给每一个对它有兴趣的人一个大大的惊喜。即使是MLS策略,由于其作为一个KLD模块来实现,所以十分便于我们对它进行修改和扩充,相信经过一段时间,MLS模块亦会成为我们的惊喜。如果大家有兴趣了解MAC框架及MLS策略的实现,请接着往下阅读。



上一页 [1] [2


上一篇:如何压缩FreeBSD内核 下一篇:FreeBSD 5.0中强制访问控制机制的使用与源代码分析 (2
大部分文章摘自网上,如有侵犯您的权益请与我们联系,我们会第一时间进行处理,谢谢! [ 打印文章 ] [ 关闭窗口 ]
推荐文章
·FreeBSD handbook中文版 9 配制F
·FreeBSD 升级系统
·Ports & Package
·FreeBSD kernel 编译大法(二)ker
·FreeBSD 上使用Kerberos 5认证
·FreeBSD 5.x 中 gbfs 的修正,及
·FreeBSD 安装Linuxigd
·FreeBSD 使用cvsd创建安全的cvs
·FreeBSD trafcount命令介绍
·FreeBSD入门安装及汉化
相关文章
·FreeBSD 5.0中强制访问控制机制
最新文章
·FreeBSD连载(94):基于NAT的负载
·FreeBSD连载(93):反向代理负载
·FreeBSD连载(92):基于DNS的负载
·FreeBSD连载(91):提升静态网页
·FreeBSD连载(90):单服务器性能
·FreeBSD连载(89):CGI和SSI的安
·FreeBSD连载(88):安全连接方式S
·FreeBSD连载(87):基于用户的访
·FreeBSD连载(86):对IP地址和域
·FreeBSD连载(85):配置Apache服(
Google