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 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 '' }
endComment 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 :
| command | awk -F: '($3>=1000){print $1" "$6}' /etc/passwd # chgrp -R <group> <home> per user after review |
|---|---|
| reason | re-grouping a user's whole home is per-user, verify before acting |
| resource | manual |
pavois harden plan localoù 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
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| ANSSI BP-028 | R50 | direct | 2.0 | haute |
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.