← Toutes les règles
SOCLE-CLD-IAM-067// Accounts (umask)moyenneconfig persistante

S'assurer que l'umask par défaut est correctement configuré dans login.defs

S'assure que la directive UMASK de /etc/login.defs définit un umask par défaut restrictif (au moins aussi strict que 0027/0077 selon la norme) pour toutes les sessions de connexion.

Vérifié sur le contenu d’un fichier de configuration persistant, la source de vérité qui survit aux redémarrages.

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 4 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

L'umask détermine les permissions retirées aux fichiers et répertoires nouvellement créés. La directive UMASK de /etc/login.defs est la valeur que le processus de login et PAM (pam_umask) transmettent à une session à la connexion ; elle fixe donc la base pour toute méthode de connexion (console, ssh, su, cron), indépendamment des fichiers rc de shell présents. Laissée permissive, les fichiers sont créés par défaut lisibles/inscriptibles par le groupe ou tous. La fixer au moins aussi stricte que 0027 (CIS) / 0077 (ANSSI BP-028 R36) impose le moindre privilège à la source de la session.

Ce que vérifie Pavois

Pavois lit la dernière ligne UMASK effective de /etc/login.defs et la compare à la cible de la norme par masque de bits ((valeur & masque) == masque), si bien que 0077 satisfait 0027. login.defs est la plus faisant autorité des sources d'umask car, via pam_umask, elle régit aussi les connexions hors shell (cron, su, sessions graphiques) qui ne lisent jamais bash.bashrc ni /etc/profile : rendant le défaut effectif prévisible quel que soit le shell de l'utilisateur. Le tail -1 respecte la sémantique du dernier l'emporte.

m = {'bp28'=>'0077','cis'=>'0027'}.fetch(input('pavois_standard', value: '_default'), '0077')
describe command("v=$(grep -hiE '^[[:space:]]*UMASK[[:space:]]+[0-7]+' /etc/login.defs 2>/dev/null | grep -oE '[0-7]+' | tail -1); { [ -n \"$v\" ] && [ $((0$v & #{m})) -eq $((#{m})) ] && echo ok; } || echo ko") do
  its('stdout.strip') { should eq 'ok' }
end

Comment vérifier qu’elle est appliquée

Inspectez la directive configurée :

grep -hiE '^[[:space:]]*UMASK[[:space:]]+[0-7]+' /etc/login.defs | tail -1

Attendu UMASK 027 (ou plus strict, ex. 077). Pour la valeur réellement appliquée à la connexion, vérifiez une nouvelle session de login non interactive, ex. su - <user> -c umask.

Inspecter et investiguer

L'umask ne génère aucun événement d'audit ; vérifiez-le depuis l'état courant. Affichez la directive avec grep -i umask /etc/login.defs. Confirmez que pam_umask est actif via grep -r pam_umask /etc/pam.d/, et observez la valeur héritée par une connexion réelle avec su - <user> -c umask.

Remédiation

Aucun plan de durcissement automatisé n'est câblé pour cette règle (remediation est vide) ; elle doit être appliquée manuellement : définissez ou corrigez la directive UMASK 027 (ou UMASK 077 pour l'ANSSI) dans /etc/login.defs, en veillant à ce qu'elle soit la dernière ligne UMASK effective. Les nouvelles connexions en héritent immédiatement ; les sessions existantes doivent se reconnecter.

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

file/etc/login.defs
keyUMASK
resourceconf_line
sepspace
value077
pavois harden plan local

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

Impact & précautions

Risque faible mais portée large : comme login.defs/pam_umask agit sur tous les chemins de connexion, une valeur trop stricte retire silencieusement l'accès groupe aux fichiers créés par des tâches cron, comptes de service et flux partagés, ce qui peut casser des répertoires collaboratifs ou des piles web attendant 0664/0775. Avant un déploiement large, auditez ces flux ; lorsque le partage en groupe est requis, utilisez des répertoires setgid + ACL plutôt que d'assouplir le défaut global. Le changement ne touche que les nouveaux fichiers et se reverse entièrement en éditant la directive.

Mapping des normes

NormeRéférenceTypeVersionConfiance
ANSSI BP-028R36direct2.0haute
CIS5.4.3.3directper OS, see the benchmark tablehaute
NISTAC-6(1), CM-6(a)support800-53 Rev 5 · 800-171 Rev 2 (pinned)moyenne
DISA STIGUBTU-22-412035, UBTU-24-300030directper OS STIG releasehaute

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