← Toutes les règles
SOCLE-CLD-FSP-118// File permissionsmoyenneétat d’inventaire

Vérifier les permissions du fichier de sauvegarde passwd

Garantit que le fichier de sauvegarde /etc/passwd- n'est pas modifiable par le groupe/les autres et ne porte aucun bit exécutable ou spécial (setuid/setgid/sticky), soit le mode 0644 ou plus strict.

Vérifié sur ce qui est installé ou enregistré, paquets présents/absents, bases de comptes.

Un PASS prouve✓ actif maintenant✓ sur disque✓ survit au rebootle verdict qualifié →
Debian 12CIS 1.1.0Debian 13CIS 1.0.0FedoraRHEL 10 / Rocky 10 / AlmaLinux 10RHEL 8 / Rocky 8 / AlmaLinux 8CIS 4.0.0RHEL 9 / Rocky 9 / AlmaLinux 9CIS 2.0.0Ubuntu 22.04CIS 3.0.0Ubuntu 24.04CIS 1.0.0Ubuntu 26.04
Un seul check, mappé sur 3 normes

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

/etc/passwd- est la copie de sauvegarde de /etc/passwd et liste chaque compte, son UID/GID, son répertoire personnel et son shell de connexion. S'il est modifiable par le groupe/les autres, un attaquant pourrait falsifier un compte avec l'UID 0 ou changer un shell dans la sauvegarde ; si /etc/passwd est un jour restauré depuis celle-ci, ce changement devient effectif, une voie directe vers root. Le mode 0644 ou plus strict, appartenant à root, garde la sauvegarde résistante à la falsification.

Ce que vérifie Pavois

Pavois lit les bits de mode réels de /etc/passwd- via la ressource InSpec file, les permissions appliquées par le noyau, pas une valeur par défaut de paquet. Les fichiers de sauvegarde sont faciles à oublier et peuvent être laissés modifiables par des copies ad hoc ; inspecter l'inode réel le détecte. La garde only_if ignore le contrôle si aucune sauvegarde n'existe encore.

only_if { file('/etc/passwd-').exist? }
describe file('/etc/passwd-') do
  it { should_not be_executable.by('owner') }
  it { should_not be_setuid }
  it { should_not be_executable.by('group') }
  it { should_not be_writable.by('group') }
  it { should_not be_setgid }
  it { should_not be_executable.by('other') }
  it { should_not be_writable.by('other') }
  it { should_not be_sticky }
end

Comment vérifier qu’elle est appliquée

Exécutez stat -c '%a %U %G %n' /etc/passwd-. La sortie attendue est 644 root root /etc/passwd- (ou plus strict, par exemple 600).

Inspecter et investiguer

La sauvegarde est régénérée par les outils de gestion de comptes (useradd, usermod, vipw, passwd) ; leur activité apparaît dans /var/log/auth.log (Debian/Ubuntu) ou /var/log/secure (famille RHEL). Suivez les changements de permissions via une règle auditd et grep passwd- /var/log/audit/audit.log.

Remédiation

Aucune remédiation automatique n'est définie ; appliquez-la manuellement : chown root:root /etc/passwd- && chmod u-x,g-wx,o-wx,a-s /etc/passwd- (un simple chmod 644 /etc/passwd- atteint le mode cible).

Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :

mode0644
path/etc/passwd-
resourcefile
pavois harden plan local

où la cible est local, un alias SSH user@hôte, ou un conteneur , Docs

Impact & précautions

Risque en cas de non-application : une sauvegarde passwd modifiable peut être amorcée avec un compte UID 0 qui s'active à la restauration. Précautions : durcir ces permissions est sans danger, /etc/passwd- n'est lu que par les outils d'administration s'exécutant en root, et la valeur par défaut lisible par tous (0644) est acceptable car /etc/passwd lui-même est lisible par tous (il ne contient pas de hachages de mots de passe). Aucun service ne dépend d'un autre mode, donc aucun risque de blocage.

Mapping des normes

NormeRéférenceTypeVersionConfiance
CIS2.2.6, 7.1.2directper OS, see the benchmark tablehaute
NISTAC-6 (1)support800-53 Rev 5 · 800-171 Rev 2 (pinned)moyenne
PCI DSS2.2.6support4.0.1moyenne

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.

Sources & références