Vérifier l'utilisateur propriétaire du fichier passwd
Garantit que la base des comptes locaux /etc/passwd appartient à root (UID 0).
Vérifié sur les métadonnées d’un chemin, mode, propriétaire, groupe, SUID/SGID.
Un mapping est une référence croisée vers l’endroit où chaque norme situe cette exigence, ancrée et recoupée, pas une affirmation d’équivalence. Un check réussi est une preuve vers ces références, comment le lire.
Pourquoi cette règle
Le fichier /etc/passwd liste chaque compte local avec son UID, GID, répertoire personnel et shell de connexion. Si un compte non-root le possède, cet utilisateur pourrait ajouter des comptes, changer des UID (par ex. s'attribuer l'UID 0) ou modifier les shells, une voie directe vers l'escalade de privilèges. Définir root (UID 0) comme propriétaire restreint la modification aux utilisateurs privilégiés et protège l'intégrité de la base des comptes.
Ce que vérifie Pavois
Pavois inspecte le système de fichiers réel via la ressource InSpec file('/etc/passwd') et vérifie uid == 0, protégé par only_if. Lire le propriétaire réel de l'inode (et non un manifeste de provisionnement) révèle l'état effectif sur le disque, y compris tout chown effectué après déploiement par un script d'opérateur ou un attaquant ayant obtenu un accès root transitoire.
only_if { file('/etc/passwd').exist? }
describe file('/etc/passwd') do
its('uid') { should eq 0 }
endComment vérifier qu’elle est appliquée
Exécutez stat -c '%U %u %n' /etc/passwd. Sortie attendue : root 0 /etc/passwd. Le 0 numérique confirme la propriété par root.
Inspecter et investiguer
Les distributions livrent généralement une règle d'audit surveillant ce fichier (clé identity). Inspectez /var/log/audit/audit.log avec grep 'key="identity"' pour voir toute modification d'écriture/attribut. Si absente, ajoutez auditctl -w /etc/passwd -p wa -k identity. Les ajouts de comptes apparaissent aussi via journalctl (useradd/usermod).
Remédiation
Aucune remédiation automatisée n'est fournie pour cette règle. Appliquez-la manuellement avec chown root /etc/passwd (en root ou via sudo) ; le fichier doit rester en groupe root et mode 0644.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| owner | root |
|---|---|
| path | /etc/passwd |
| resource | file |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Un propriétaire non-root de /etc/passwd constitue un vecteur d'escalade sérieux. Risque à l'application : très faible, restaurer la propriété root est la valeur par défaut du système et ne casse pas les connexions. Précaution : ne durcissez PAS le mode en dessous de 0644 ; /etc/passwd doit rester lisible par tous, car d'innombrables outils (ls -l, id, résolution de noms) en dépendent. Seul le propriétaire est corrigé ici.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| ANSSI BP-028 | R50 | direct | 2.0 | haute |
| CIS | 2.2.6, 7.1.1 | direct | per OS, see the benchmark table | haute |
| NIST | AC-6(1), CM-6(a) | support | 800-53 Rev 5 · 800-171 Rev 2 (pinned) | moyenne |
| PCI DSS | 2.2.6 | support | 4.0.1 | moyenne |
Chaque référence est une référence croisée ancrée dans le benchmark amont et recoupée avec le SCAP Security Guide et ansible-lockdown, pas une affirmation d’équivalence. Direct = une exigence prescriptive au niveau de la ligne ; support = une famille de contrôle abstraite (NIST) vers laquelle le check apporte une preuve. Comment lire un mapping.