Overview of CIL (Common Intermediate Language)
masterCIL (Common Intermediate Language) is the intermediate language used by SELinux for policy representation. It provides a structured way to define security policies, including access vector rules, type transitions, and labeling. The documentation for CIL is organized into several functional areas:
- Core Information: Declarations, definitions, namespaces, and expressions.
- Access Control: Rules like
allow,auditallow,dontaudit, andneverallow. - Policy Components: Definitions for
class,permission,role,type,user, andsid. - Labeling: Statements for file (
filecon), network (portcon,netifcon), and Multi-Level Security (sensitivity,category). - Control Flow: Conditional statements (
boolean,tunable) and container statements (block,optional). - Specialized Labeling: Support for Xen, Infiniband, and MLS (Multi-Level Security).