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.

0conforme : le run a réussi et, si --fail-under était posé, la note a atteint le seuil
1non-conformité : la note est sous --fail-under (c'est le verrou qu'un job de CI lit)
2erreur 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

--exceptionsstringformal exceptions file (who excluded what, why, until when)
-o, --outstringoutput directory (default: evidence-bundle-<timestamp>)
--planstringhardening plan that was applied (.yml)
--reboot-proofstringreboot-proof artifact (boot_id / uptime captured post-reboot)
--reportstringArrayreport 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-signatureboolfail 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

--htmlstringalso write a self-contained campaign report to this path
--jsonstringalso 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-cincboollet Pavois install the engine ON the target when it is missing (an unpinned installer, run as root there)
--dry-runboolcompile and print the Chef recipe, do not converge
--i-understand-dangerboolacknowledge ALL `danger:` items at once (brick/lockout risk); otherwise set `acknowledged: true` per item in the plan
--i-understand-lockoutboolapply a remediation that closes the account you are connected with (you will need another way in)
--keystringSSH private key for the target
--no-restore-pointbooldo NOT photograph the prior state before converging (you lose `harden rollback`)
--rebootboolwhen changes need it, reboot the target via a Chef `reboot` resource at the end of the run
--restore-pointstringwhere to write the restore point (default: restore-points/<target>-<timestamp>)
--scanboolafter converging, re-scan and generate a fresh report + grade
--standardstringapply each rule's value for THIS standard (bp28|cis|nist|…); default = the most-secure value
--sudoboolaccepted for symmetry with scan and plan; apply always uses sudo, so this changes nothing
--sudo-promptboolprompt for the sudo password (no echo; also reads PAVOIS_SUDO_PASSWORD): for a least-privilege target account without NOPASSWD
--targetstringoverride the target from the plan
--yesboolskip 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-cincboollet Pavois install the engine ON the target when it is missing (an unpinned installer, run as root there)
--enablestringpre-enable gaps in the written plan: none | auto (every gap an apply can actually close) | all (also the dangerous ones, still unacknowledged)
--enginestringcinc engine: auto|native|docker
--fromstringuse an existing InSpec scan JSON instead of scanning
--keystringSSH private key for the target
--outstringplan output path (default: ./hardening-plan-<os>.yml)
--ssh-passstringSSH password (discouraged: leaks via ps/history; prefer --ssh-prompt or a key)
--ssh-promptboolprompt for the SSH password (no echo; also reads PAVOIS_SSH_PASSWORD)
--sudoboolrun checks with sudo (needed for effective config)
--sudo-promptboolprompt 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>
--keystringSSH private key for the target
--sudo-promptboolprompt for the sudo password (no echo; also reads PAVOIS_SUDO_PASSWORD)
--targetstringrestore to this host instead of the one recorded in the manifest (e.g. a clone)
--yesbooldo 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

--prettyboolpretty-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

--outstringwrite 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

--enginestringengine label for the report header (défaut CINC Auditor (InSpec))
--machinestringmachine label for the report header
-o, --outstringwrite HTML here (default: stdout)
--timestampstringtimestamp label for the report header
--transportstringtransport 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

--domainstringonly rules in this domain
--idstringonly this control id (e.g. ssh-disable-root-login)
--osstringOS reference to read (e.g. debian12, ubuntu2404) (défaut debian12)
--prettyboolpretty-print the JSON (défaut true)
--standardstringonly 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-containerboolscan a container with a full per-OS profile anyway (kernel controls then measure the HOST, not the target)
--allow-unprivilegedboolscan without root anyway (checks that need privilege will report deviations they never measured)
--bootstrap-cincboollet Pavois install cinc-auditor ON the target when it is missing (an unpinned installer, run as root there)
--controlsstringArrayrun ONLY these control ids (fast single-rule iteration, e.g. --controls ssh-disable-root-login)
--enginestringauto | native | docker (défaut auto)
--fail-underintexit code 1 if grade < PCT/100 (défaut -1)
-f, --formatstringformat: table | json | sarif | junit | csv | html | oscal (défaut table)
--fromstringevaluate an existing InSpec JSON report (no scan)
--keystringSSH private key
--levelstringlevel (e.g. --standard cis --level 1)
--on-targetboolrun the scan ON the target (local://): far fewer SSH round-trips, much faster
--outstringJSON output dir (default: <root>/reports)
--profilestringoverride the auto-detected per-OS profile (path or URL to a custom profile)
--ssh-passstringSSH password (discouraged: leaks via ps/history; prefer --ssh-prompt or a key)
--ssh-promptboolprompt for the SSH password (no echo; also reads PAVOIS_SSH_PASSWORD)
--standardstringaudit a single standard: bp28|cis|pci-dss|nist|stig (see: Pavois standards)
--sudoboolrun as root via sudo (effective config of a service)
--sudo-promptboolprompt for the sudo password (no echo; also reads PAVOIS_SUDO_PASSWORD); implies --sudo

pavois serve

Sert les rapports HTML en HTTP

pavois serve

Options

--portintHTTP 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

--keystringSSH private key for the target

pavois version

Affiche la version de pavois

pavois version