← Toutes les règles
SOCLE-CLD-IAM-013// Accounts (home dirs)moyenneétat du système de fichiers

Tous les fichiers et répertoires du home doivent appartenir au groupe primaire de l'utilisateur

Garantit que tous les fichiers et répertoires (récursivement) du home de chaque utilisateur interactif appartiennent au groupe primaire de cet utilisateur.

Vérifié sur les métadonnées d’un chemin, mode, propriétaire, groupe, SUID/SGID.

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 1 norme

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

Si les fichiers d'un utilisateur appartiennent à un groupe qu'il ne maîtrise pas, les membres de ce groupe peuvent lire ou modifier des données privées auxquelles ils ne devraient pas accéder. Une appartenance cohérente au groupe primaire confine les données de l'utilisateur à lui-même et à son groupe prévu.

Ce que vérifie Pavois

Pavois lit le /etc/passwd réel pour le GID primaire et le home de chaque utilisateur interactif, puis exécute un find -P "$h" ! -gid "$g" ! -type l récursif (liens symboliques exclus, sans traversée). Il compare au GID primaire effectif, repérant des fichiers profonds laissés par des archives, restaurations ou d'autres utilisateurs, pas uniquement les fichiers cachés de surface.

describe command('awk -F: \'($3>=1000 && $3!=65534 && $6!="/"){print $3":"$4":"$6}\' /etc/passwd | while IFS=: read u g h; do [ -d "$h" ] && timeout 60 find -P "$h" ! -gid "$g" ! -type l -print 2>/dev/null; done | head -1') do
  its('exit_status') { should_not cmp 124 }  # timeout killed the scan: no evidence, not a pass
  its('stdout.strip') { should eq '' }
end

Comment vérifier qu’elle est appliquée

Pour un utilisateur, exécutez find ~user ! -gid $(id -g user) ! -type l -printf '%p %g\n'. Attendu : aucune sortie (toute l'arborescence appartient au groupe primaire).

Inspecter et investiguer

L'appartenance de groupe est inspectée directement, non journalisée. Auditez récursivement avec find ~user ! -gid $(id -g user) -printf '%p %g\n'. Avec l'audit d'intégrité activé, les événements chgrp sur les chemins du home apparaissent dans /var/log/audit/audit.log sous la clé de surveillance concernée.

Remédiation

Aucune remédiation automatique n'est fournie (remediation est vide) : appliquez manuellement. Pour chaque utilisateur signalé, réaffectez le groupe sur tout son home, par ex. find ~user ! -gid $(id -g user) ! -type l -exec chgrp $(id -gn user) {} +. Examinez d'abord les chemins inhabituels plutôt que de récurser aveuglément.

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

commandawk -F: '($3>=1000){print $1" "$6}' /etc/passwd # chgrp -R <group> <home> per user after review
reasonre-grouping a user's whole home is per-user, verify before acting
resourcemanual
pavois harden plan local

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

Impact & précautions

Une mauvaise appartenance de groupe peut exposer des fichiers privés à un groupe partagé. Précautions avant application : certains flux légitimes placent des fichiers de projet partagé sous un groupe de collaboration dans $HOME, un chgrp global vers le groupe primaire supprimerait ce partage. Inspectez les chemins fautifs, excluez les sous-arbres partagés volontaires, et méfiez-vous de la récursion dans des systèmes de fichiers montés sous le home.

Mapping des normes

NormeRéférenceTypeVersionConfiance
ANSSI BP-028R50direct2.0haute

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

Normes officielles

ANSSI-BP-028 (2.0) ↗