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

Tous les fichiers et répertoires du home doivent avoir un propriétaire valide

Garantit que tous les fichiers et répertoires (récursivement) du home de chaque utilisateur interactif appartiennent à 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 utilisateurs interactifs ne possèdent pas tous les fichiers de leur home, des utilisateurs non autorisés peuvent y accéder. Des fichiers appartenant à un autre UID (ou orphelins) sont aussi un fort indicateur de compromission, par exemple un logiciel malveillant déposé par un autre compte ou des restes d'un utilisateur supprimé.

Ce que vérifie Pavois

Pavois lit l'UID et le home de chaque utilisateur interactif depuis le /etc/passwd réel, puis exécute un find -P "$h" ! -uid "$u" ! -type l récursif (liens symboliques exclus). La comparaison à l'UID effectif du propriétaire repère les fichiers profonds appartenant à un autre compte ou à un compte supprimé n'importe où dans l'arborescence, ce qu'un contrôle de modèle de fichier manquerait.

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" ! -uid "$u" ! -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 ! -uid $(id -u user) ! -type l -printf '%p %u\n'. Attendu : aucune sortie. Les fichiers orphelins (sans entrée passwd) apparaissent avec un UID numérique via find ~user -nouser.

Inspecter et investiguer

L'appartenance est inspectée directement, non journalisée. Auditez récursivement avec find ~user ! -uid $(id -u user) -printf '%p %u\n' et repérez les orphelins avec find ~user -nouser. Avec l'audit d'intégrité activé, les événements chown 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é, reprenez la propriété sur tout son home, par ex. find ~user ! -uid $(id -u user) ! -type l -exec chown $(id -un user) {} +. Considérez les fichiers étrangers ou orphelins comme suspects et examinez-les avant un chown de masse.

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

command# Files under each home should be owned by that user: review, then chown -R deliberately per user. awk -F: '($3>=1000){print $1" "$6}' /etc/passwd
reasonre-owning a user's whole home is per-user and risky, 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

Des fichiers du home mal attribués peuvent fuiter des données et masquer une intrusion. Précautions avant application : relevez d'abord l'appartenance actuelle pour l'investigation (find ~user ! -uid $(id -u user) -printf '%p %u\n'), et méfiez-vous des collisions d'UID après migration et de la récursion dans des montages liés sous le home, un chown global pourrait réattribuer des fichiers appartenant ailleurs. Examinez les fichiers orphelins (-nouser) plutôt que de les revendiquer silencieusement.

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) ↗