Skip to content

Exempting Rules

Exemptions let you mark rules as approved exceptions. When a rule is exempt, the compliance script reports it as an exemption rather than a failure, and skips remediation for that rule.


Exemptions are stored in the audit plist file at:

/Library/Preferences/org.{baseline_name}.audit.plist

Each exempted rule has two keys:

KeyTypeDescription
exemptBooleantrue to mark as exempt
exempt_reasonStringWhy the exemption is approved

  1. Set the exempt flag

    Terminal window
    sudo /usr/libexec/PlistBuddy -c "Add :RULE_ID:exempt bool true" /Library/Preferences/org.BASELINE.audit.plist
  2. Add the reason

    Terminal window
    sudo /usr/libexec/PlistBuddy -c "Add :RULE_ID:exempt_reason string 'Your reason'" /Library/Preferences/org.BASELINE.audit.plist
  3. Verify the exemption

    Terminal window
    /usr/libexec/PlistBuddy -c "Print :RULE_ID" /Library/Preferences/org.BASELINE.audit.plist

    Output:

    Dict {
    finding = true
    exempt = true
    exempt_reason = Your reason
    }

Example: Exempt auth_smartcard_enforce from the 800-53r5_moderate baseline:

Terminal window
sudo /usr/libexec/PlistBuddy -c "Add :auth_smartcard_enforce:exempt bool true" /Library/Preferences/org.800-53r5_moderate.audit.plist
sudo /usr/libexec/PlistBuddy -c "Add :auth_smartcard_enforce:exempt_reason string 'Hardware reader not available'" /Library/Preferences/org.800-53r5_moderate.audit.plist

For enterprise deployments, deploy exemptions as a managed preference profile targeting the org.{baseline_name}.audit preference domain.

The compliance script checks for managed preferences and respects exemptions set through MDM.