Skip to content

How to Generate Compliance Scripts

Compliance scripts are generated using the generate_guidance.py script with the -s flag. The script reads your baseline and creates a zsh script ready for deployment.


  1. Run the generation script

    Terminal window
    ./scripts/generate_guidance.py -s baselines/BASELINE_NAME.yaml

    Example:

    Terminal window
    ./scripts/generate_guidance.py -s baselines/800-53r5_moderate.yaml
  2. Find your files

    The -s flag generates the compliance script and audit plist. Guidance documents are also created by default.

    • Directorybuild/
      • Directory800-53r5_moderate/
        • 800-53r5_moderate_compliance.sh - Compliance script
        • 800-53r5_moderate.adoc - AsciiDoc guidance
        • 800-53r5_moderate.html - HTML guidance
        • 800-53r5_moderate.pdf - PDF guidance
        • Directorypreferences/
          • org.800-53r5_moderate.audit.plist

Run with sudo for full access to system settings:

Terminal window
sudo ./build/BASELINE_NAME/BASELINE_NAME_compliance.sh
FlagDescription
(no flags)Interactive menu mode
--checkRun compliance checks without interaction
--fixRun remediation commands without interaction
--cfcRun check, fix, check sequence
--statsDisplay statistics from last scan
--compliantReport number of compliant checks
--non_compliantReport number of non-compliant checks
--resetClear results for current baseline
--reset-allClear results for all mSCP baselines

When executed, the script creates:

FileLocation
Audit plist/Library/Preferences/org.BASELINE_NAME.audit.plist
Log file/Library/Logs/BASELINE_NAME_baseline.log