The Trusted Solaris environment supports mandatory search, read, and write operations. MAC is enforced by comparing the sensitivity label and clearance of a process with the sensitivity label of the object to which the process is seeking access and determining whether the access is allowed or denied according to the MAC policy enforced on the object and the outcome of the comparison.
The outcome states the relationship between the process sensitivity label and object sensitivity label and is described as one dominating the other or equaling the other. The relationships of dominance and equality are covered in Chapter 4, Labels, and summarized here:
Dominates - Has a higher or equal position in the classifications hierarchy, as defined in the label_encodings(4) file
Equals - Has the same position in the hierarchy.
The outcome also states the relationship between the process clearance and the object sensitivity label as one of dominance or equality. If the access operation attempts to change the CMW label of the object, the clearance sets the highest level to which the sensitivity label portion can be changed. If the access operation is a write-up (see "Write Access" below), the clearance sets the highest level to which the process may write.
The Trusted Solaris environment supports the following mandatory read and write operations on interactions between unprivileged processes and the objects they access. See "Policy Enforcement" for information on how these operations apply to objects.
The Trusted Solaris definition of mandatory read access includes read-equal and read-down:
Read-Equal - An unprivileged process can read from an object only when the process sensitivity label is equal to the object sensitivity label.
Read-Down - An unprivileged process can read from an object of a lower sensitivity label only when the process sensitivity label dominates the object sensitivity label and the labels are not equal.
The Trusted Solaris definition of mandatory write access includes write-equal and write-up:
Write-Equal - An unprivileged process can write to an object only when the process sensitivity label is equal to the object sensitivity label.
Write-Up - An unprivileged process can write to an object of a higher sensitivity label only when the process sensitivity label is dominated by the object sensitivity label and the labels are not equal.