Pavois, référence des commandes
Les 14 commandes de pavois et leurs 68 options, générées depuis le binaire lui-même : scan, harden, diff, verify, bundle, rules, norms, oscal.
Cette page est générée depuis le binaire (`pavois clidocs`) : elle ne peut pas être en retard sur lui. Les lignes de commande, les noms d’options et leurs types sont EXACTEMENT ceux que votre terminal affiche, en anglais. Seules les phrases d’explication sont traduites.
Codes de sortie
Le verdict que votre pipeline lit. Les codes 100/101 de CINC sont absorbés en interne : un contrôle qui échoue est un résultat normal, pas une erreur.
| 0 | conforme : le run a réussi et, si --fail-under était posé, la note a atteint le seuil |
| 1 | non-conformité : la note est sous --fail-under (c'est le verrou qu'un job de CI lit) |
| 2 | erreur technique : pavois ou le moteur n'a pas pu terminer le run |
pavois bundle
Assemble un paquet de preuve prêt à signer (avant/après, plan, rapports, manifeste + empreintes)
pavois bundle <before.json> <after.json>
Options
| --exceptions | string | formal exceptions file (who excluded what, why, until when) |
| -o, --out | string | output directory (default: evidence-bundle-<timestamp>) |
| --plan | string | hardening plan that was applied (.yml) |
| --reboot-proof | string | reboot-proof artifact (boot_id / uptime captured post-reboot) |
| --report | stringArray | report file to include (HTML/JSON/...), repeatable |
pavois bundle verify
Vérifie un paquet de preuve : chaque empreinte, le condensat du manifeste, et une signature si elle est présente
pavois bundle verify <bundle-dir>
| --require-signature | bool | fail if no valid signature is present |
pavois diff
Compare deux états (rapport de scan ou plan) : corrigés, régressés, (dés)activés, écart de note
pavois diff <before.json|plan.yml> <after.json|plan.yml>
Options
| --html | string | also write a self-contained campaign report to this path |
| --json | string | also write the structured campaign delta to this path |
pavois doctor
Vérifie que l'environnement est prêt à scanner (moteur CINC, sudo, SSH, OS, corpus de règles)
pavois doctor
pavois harden
Planifie et applique le durcissement depuis la référence Pavois (Chef natif, pas de bash)
pavois harden
Drive hardening from a state-aware YAML plan. `pavois harden plan <target>` scans the machine, reads the Pavois reference, and writes a plan where already- compliant rules are shown (never re-applied) and only real gaps are opt-in.
pavois harden apply
Compile les items activés du plan en un run Chef natif et fait converger la cible
pavois harden apply <plan.yml>
| --bootstrap-cinc | bool | let Pavois install the engine ON the target when it is missing (an unpinned installer, run as root there) |
| --dry-run | bool | compile and print the Chef recipe, do not converge |
| --i-understand-danger | bool | acknowledge ALL `danger:` items at once (brick/lockout risk); otherwise set `acknowledged: true` per item in the plan |
| --i-understand-lockout | bool | apply a remediation that closes the account you are connected with (you will need another way in) |
| --key | string | SSH private key for the target |
| --no-restore-point | bool | do NOT photograph the prior state before converging (you lose `harden rollback`) |
| --reboot | bool | when changes need it, reboot the target via a Chef `reboot` resource at the end of the run |
| --restore-point | string | where to write the restore point (default: restore-points/<target>-<timestamp>) |
| --scan | bool | after converging, re-scan and generate a fresh report + grade |
| --standard | string | apply each rule's value for THIS standard (bp28|cis|nist|…); default = the most-secure value |
| --sudo | bool | accepted for symmetry with scan and plan; apply always uses sudo, so this changes nothing |
| --sudo-prompt | bool | prompt for the sudo password (no echo; also reads PAVOIS_SUDO_PASSWORD): for a least-privilege target account without NOPASSWD |
| --target | string | override the target from the plan |
| --yes | bool | skip the confirmation prompt (CI / --auto-approve) |
pavois harden plan
Scanne une cible et écrit un plan de durcissement conscient de l'état (YAML)
pavois harden plan <target>
| --bootstrap-cinc | bool | let Pavois install the engine ON the target when it is missing (an unpinned installer, run as root there) |
| --enable | string | pre-enable gaps in the written plan: none | auto (every gap an apply can actually close) | all (also the dangerous ones, still unacknowledged) |
| --engine | string | cinc engine: auto|native|docker |
| --from | string | use an existing InSpec scan JSON instead of scanning |
| --key | string | SSH private key for the target |
| --out | string | plan output path (default: ./hardening-plan-<os>.yml) |
| --ssh-pass | string | SSH password (discouraged: leaks via ps/history; prefer --ssh-prompt or a key) |
| --ssh-prompt | bool | prompt for the SSH password (no echo; also reads PAVOIS_SSH_PASSWORD) |
| --sudo | bool | run checks with sudo (needed for effective config) |
| --sudo-prompt | bool | prompt for the sudo password (no echo; also reads PAVOIS_SUDO_PASSWORD); implies --sudo |
pavois harden rollback
Annule un durcissement : restaure les fichiers, paquets et services qu'un plan a changés
pavois harden rollback <restore-point-dir>
| --key | string | SSH private key for the target |
| --sudo-prompt | bool | prompt for the sudo password (no echo; also reads PAVOIS_SUDO_PASSWORD) |
| --target | string | restore to this host instead of the one recorded in the manifest (e.g. a clone) |
| --yes | bool | do not ask for confirmation |
pavois norms
Émet le catalogue des normes (référentiels, versions, autorités) + la couverture réelle, en JSON
pavois norms
Emit the standards Pavois maps to: CIS (per-OS benchmark version), ANSSI-BP-028, NIST 800-53/800-171, PCI-DSS, STIG: each with its version, authority and source, plus live per-OS coverage from the rule base. The self-describing reference API.
Options
| --pretty | bool | pretty-print the JSON (défaut true) |
pavois oscal
Publie la baseline Pavois en OSCAL (catalogue + profils par OS)
pavois oscal
Emit the Pavois Effective-Configuration Hardening Baseline as an OSCAL 1.1.2 catalog (one control per neutral id, grouped by domain, carrying method=<evidence_type>, the real check, per-OS CIS/STIG numbers and norm links) plus per-OS profiles. With no --out the catalog prints to stdout; --out DIR writes the catalog + profiles/.
Options
| --out | string | write catalog + profiles to this directory (default: stdout) |
pavois profiles
Liste les profils embarqués
pavois profiles
pavois render
Rend un rapport de scan stocké (.json) en rapport HTML autoporté, hors ligne
pavois render <report.json>
Options
| --engine | string | engine label for the report header (défaut CINC Auditor (InSpec)) |
| --machine | string | machine label for the report header |
| -o, --out | string | write HTML here (default: stdout) |
| --timestamp | string | timestamp label for the report header |
| --transport | string | transport label for the report header (défaut ssh) |
pavois rules
Émet la base de règles Pavois en JSON (l'API de référence)
pavois rules
Emit the Pavois rule base as JSON: id, title, domain, severity, the real norm mappings (cis/bp28/nist/pci-dss/stig) and per-norm thresholds, the check and the remediation. Filter with --os/--standard/--domain. This is the consumable contract of Pavois's source-of-truth reference; it does not need a target.
Options
| --domain | string | only rules in this domain |
| --id | string | only this control id (e.g. ssh-disable-root-login) |
| --os | string | OS reference to read (e.g. debian12, ubuntu2404) (défaut debian12) |
| --pretty | bool | pretty-print the JSON (défaut true) |
| --standard | string | only rules mapped to this standard: bp28|cis|nist|pci-dss|stig |
pavois scan
Audite une cible (configuration effective) et note de A à E
pavois scan <local|user@host|container>
Options
| --allow-container | bool | scan a container with a full per-OS profile anyway (kernel controls then measure the HOST, not the target) |
| --allow-unprivileged | bool | scan without root anyway (checks that need privilege will report deviations they never measured) |
| --bootstrap-cinc | bool | let Pavois install cinc-auditor ON the target when it is missing (an unpinned installer, run as root there) |
| --controls | stringArray | run ONLY these control ids (fast single-rule iteration, e.g. --controls ssh-disable-root-login) |
| --engine | string | auto | native | docker (défaut auto) |
| --fail-under | int | exit code 1 if grade < PCT/100 (défaut -1) |
| -f, --format | string | format: table | json | sarif | junit | csv | html | oscal (défaut table) |
| --from | string | evaluate an existing InSpec JSON report (no scan) |
| --key | string | SSH private key |
| --level | string | level (e.g. --standard cis --level 1) |
| --on-target | bool | run the scan ON the target (local://): far fewer SSH round-trips, much faster |
| --out | string | JSON output dir (default: <root>/reports) |
| --profile | string | override the auto-detected per-OS profile (path or URL to a custom profile) |
| --ssh-pass | string | SSH password (discouraged: leaks via ps/history; prefer --ssh-prompt or a key) |
| --ssh-prompt | bool | prompt for the SSH password (no echo; also reads PAVOIS_SSH_PASSWORD) |
| --standard | string | audit a single standard: bp28|cis|pci-dss|nist|stig (see: Pavois standards) |
| --sudo | bool | run as root via sudo (effective config of a service) |
| --sudo-prompt | bool | prompt for the sudo password (no echo; also reads PAVOIS_SUDO_PASSWORD); implies --sudo |
pavois serve
Sert les rapports HTML en HTTP
pavois serve
Options
| --port | int | HTTP listen port (défaut 8098) |
pavois standards
Explique les normes auditables (--standard) et leurs niveaux
pavois standards
pavois verify
Validation comportementale : tenter l'action interdite, confirmer que la protection tient
pavois verify <target>
Options
| --key | string | SSH private key for the target |
pavois version
Affiche la version de pavois
pavois version