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

Tous les fichiers et répertoires du home doivent avoir le mode 0750 ou plus restrictif

Garantit que tous les fichiers et répertoires du home de chaque utilisateur interactif sont en mode 0750 ou plus restrictif, pas d'écriture pour le groupe, aucun accès pour les autres, ni bits setuid/setgid/sticky inattendus.

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

Des permissions excessives sur les fichiers du home permettent à des utilisateurs non prévus de lire des données privées ou de modifier des fichiers dont le propriétaire dépend. Un contenu lisible par tous ou inscriptible par le groupe expose identifiants, clés et fichiers d'initialisation ; des bits setuid/setgid égarés peuvent servir d'appui à une élévation de privilèges.

Ce que vérifie Pavois

Pavois lit le /etc/passwd réel pour les utilisateurs interactifs et leurs homes, puis exécute find -P "$h" -perm /7027 ! -type l. Le masque /7027 signale tout chemin portant setuid/setgid/sticky (7000), écriture groupe (020) ou un bit pour les autres (007), soit tout ce qui est moins restrictif que 0750. Inspecter le mode effectif sur disque repère les fichiers créés trop permissifs par des outils ou le umask, au-delà d'un modèle de squelette.

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" -perm /7027 ! -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 -perm /7027 ! -type l -printf '%m %p\n'. Attendu : aucune sortie (chaque entrée est en 0750 ou plus restrictif, sans bits setuid/setgid/sticky).

Inspecter et investiguer

Les permissions sont inspectées directement, non journalisées. Auditez avec find ~user -perm /7027 ! -type l -printf '%m %p\n' ou stat -c '%a %n' <chemin>. Avec l'audit d'intégrité activé, les événements chmod 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é, retirez les bits excédentaires, par ex. find ~user -perm /7027 ! -type l -exec chmod g-w,o-rwx {} + (examinez séparément les bits setuid/setgid avant de les retirer).

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

commandawk -F: '($3>=1000 && $3!=65534 && $6!="/"){print $6}' /etc/passwd | while read h; do [ -d "$h" ] && find "$h" -perm /7027 ! -type l -exec chmod u-s,g-w-s,o=- {} + 2>/dev/null; done; true
namefix-home-perms
resourceexec
pavois harden plan local

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

Impact & précautions

Des fichiers de home trop permissifs exposent des secrets et permettent leur altération. Précautions avant application : un chmod brutal peut casser des applications nécessitant légitimement un accès groupe (répertoires de dev partagés, ~/.gnupg déjà en 0700, sockets), examinez d'abord les chemins concernés. Retirer o-rwx est sûr pour des homes privés, mais supprimer setuid/setgid à l'aveugle peut casser des utilitaires volontairement privilégiés ; traitez les correspondances du masque 7000 au cas par cas.

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