CilConstraints - SELinuxProject/cil GitHub Wiki
The constrain statements enables you to restrict specified permissions for specified object classes by defining constraints based on relationships between source and target security contexts.
'''Syntax:'''
(constrain classpermissionset expression)
'''Syntax Explanation:''' classpermissionset:: The classpermissionset that contains the associated object class and permission(s). This can also be declared anonymously, enclosed in parentheses. expression:: A boolean expression of the constraint.
The boolean expression syntax supports the following keywords:
- t1, r1, u1 - Source type, role, and user, respectively.
- t2, r2, u2 - Target type, role, and user, respectively.
'''Example:'''
(class file (read write execute entry_point)) (classpermissionset file_rw (file (read write))) (type bin_t) (type exec_t) (constrain file_rw (not (or (and (eq t1 exec_t) (eq t2 bin_t)) (eq r1 r2)))) ; Using an anonymous classpermissionset (constrain (file (read write)) (not (or (and (eq t1 exec_t) (eq t2 bin_t)) (eq r1 r2))))