至此,/tmp文件系统的扩展属性配置完毕,我们可以尝试使用下面的命令来改变/tmp/test这个文件的MAC标记:
1.4 操作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的用法:
mac_set_proc,mac_set_file的用法:
1.5 小结 在使用上,从我个人的使用经验来看,比较不好用。当然,这个问题不能全怪系统,MLS策略导致易用性降低已经是不争的事实,相信经过一段时间的开发,最终会给我们一个满意的答案。 但是瑕不掩玉,撇开MLS,单看MAC框架,应该说是设计得很完美的:良好的结构、清晰的逻辑、非常简洁的接口,这些优点应该来说可以给每一个对它有兴趣的人一个大大的惊喜。即使是MLS策略,由于其作为一个KLD模块来实现,所以十分便于我们对它进行修改和扩充,相信经过一段时间,MLS模块亦会成为我们的惊喜。如果大家有兴趣了解MAC框架及MLS策略的实现,请接着往下阅读。 |
||||||||||||||||||||||||||||
| 上一篇:如何压缩FreeBSD内核 下一篇:FreeBSD 5.0中强制访问控制机制的使用与源代码分析 (2 | ||||||||||||||||||||||||||||
| 大部分文章摘自网上,如有侵犯您的权益请与我们联系,我们会第一时间进行处理,谢谢! | [ 打印文章 ] [ 关闭窗口 ] |
|
|