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

S'assurer que l'umask par défaut est correctement configuré dans /etc/profile

S'assure que /etc/profile (et tout drop-in /etc/profile.d/*.sh) définit un umask restrictif au moins aussi strict que 0027/0077 selon la norme.

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. /etc/profile et ses drop-ins /etc/profile.d/*.sh définissent l'umask global des shells de connexion (et des sessions sh POSIX). Une valeur permissive ici signifie que les fichiers créés par les utilisateurs sont par défaut lisibles/inscriptibles par le groupe ou tous, exposant des données à des comptes non autorisés. Imposer au moins 0027 (CIS) / 0077 (ANSSI BP-028 R36) applique le moindre privilège à la création de fichiers pour le chemin shell de connexion.

Ce que vérifie Pavois

Pavois examine à la fois /etc/profile et chaque drop-in /etc/profile.d/*.sh, retient la dernière ligne umask effective (tail -1) et la compare à la cible de la norme par masque de bits ((valeur & masque) == masque), si bien que 0077 satisfait 0027. Inclure les drop-ins profile.d est ce qu'un contrôle fichier par fichier rate : de nombreuses distributions livrent l'umask réel dans un drop-in (par ex. /etc/profile.d/umask.sh), et un drop-in postérieur peut surcharger /etc/profile : lire le résultat fusionné, dernier l'emporte reflète ce qu'un shell de connexion applique réellement.

m = {'bp28'=>'0077','cis'=>'0027'}.fetch(input('pavois_standard', value: '_default'), '0077')
describe command("v=$(grep -hiE '^[[:space:]]*umask[[:space:]]+[0-7]+' /etc/profile /etc/profile.d/*.sh 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 valeur configurée effective sur toutes les sources :

grep -hiE '^[[:space:]]*umask[[:space:]]+[0-7]+' /etc/profile /etc/profile.d/*.sh | tail -1

Attendu umask 027 (ou plus strict). Confirmez la valeur d'exécution dans un shell de connexion avec bash -lc umask (attendu 0027 ou 0077).

Inspecter et investiguer

L'umask ne génère aucun événement d'audit ; vérifiez-le depuis l'état courant. Listez les lignes source avec grep -i umask /etc/profile /etc/profile.d/*.sh, et la valeur héritée par un shell de connexion avec bash -lc umask. Pour contrôler les droits résultants, fixez l'umask puis touch /tmp/t && stat -c '%a' /tmp/t.

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 umask 027 (ou umask 077 pour l'ANSSI) dans /etc/profile ou un /etc/profile.d/umask.sh dédié, en veillant à ce qu'aucun drop-in trié plus tard ne le réassouplisse (les drop-ins sont sourcés dans l'ordre lexical). Les nouveaux shells de connexion 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 :

contentumask 077
grouproot
mode0755
ownerroot
path/etc/profile.d/99-pavois-umask.sh
resourcefile
pavois harden plan local

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

Impact & précautions

Risque faible, limité aux sessions de shell de connexion. Comme pour les autres sources d'umask, un renforcement à 0077 retire l'accès groupe aux fichiers nouvellement créés, ce qui peut casser des flux reposant sur des fichiers partagés en groupe (répertoires collaboratifs, piles web attendant 0664/0775). Auditez ces cas avant d'imposer la règle ; lorsque le partage en groupe est requis, préférez des répertoires setgid + ACL à l'assouplissement de l'umask global. Attention à l'ordre des drop-ins : une valeur plus stricte dans /etc/profile peut tout de même être surchargée par un fichier profile.d ultérieur. Le changement n'affecte que les nouveaux fichiers et se reverse en éditant la ligne.

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