3.2.4 限制规则
限制规则给操作许可提供了最终的跨层次的限制。限制规则用Boolean表达式表示。限制的定义语法为:
constrain |
其中表达式
u1 op u2 #u1和u2分别表示操作前后的用户身份 r1 role_op r2 #r1和r2分别表示操作前后的角色 t1 op t2 #t1和t2分别表示操作前后的类型 u1 op user_set # user_set表示用户身份集 u2 op user_set r1 op role_set r2 op role_set t1 op type_set t2 op type_set |
表示式中的操作符有not、and、or、=、!=等,role_op还包括dominance(域化)操作符。
下面是限制的样例:
例1:限制进程域转移
下面语句限制进程域转移的能力,类型转移前后进程的角色一致,或者,进程有类型为privrole。
constrain process transition( r1 == r2 or t1 == privrole); |
例2:限制标识客体
下面的语句限制标识客体的能力,即标识客体时,标识前后客体的用户身份一致或者标识前进程的域为privowner。
constrain dir_file_class_set { create relabelto relabelfrom }
( u1 == u2 or t1 == privowner );
constrain socket_class_set { create relabelto relabelfrom }
( u1 == u2 or t1 == privowner );
|
| 回书目 上一节 下一节 |