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

S'assurer que l'umask Bash par défaut est correctement configuré

S'assure que le fichier de démarrage Bash global /etc/bash.bashrc 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. L'umask Bash global dans /etc/bash.bashrc s'applique aux shells Bash interactifs ; s'il est trop permissif, chaque fichier créé par un utilisateur est par défaut lisible/inscriptible par le groupe ou tous, exposant données et configuration à des comptes non autorisés. Un umask restrictif (0027 pour CIS, 0077 pour ANSSI BP-028 R36) impose le moindre privilège à la création de fichiers pour tous les utilisateurs.

Ce que vérifie Pavois

Pavois lit la dernière ligne umask effective de /etc/bash.bashrc et vérifie qu'elle est au moins aussi stricte que la cible de la norme via un test par masque de bits ((valeur & masque) == masque), si bien que 0077 satisfait une exigence 0027. Comme les fichiers rc autorisent des affectations répétées où la dernière l'emporte, Pavois retient la dernière ligne correspondante (tail -1) et non la première : ce qui reflète ce qu'un shell Bash interactif applique réellement, là où un grep naïf au premier match se tromperait.

m = {'bp28'=>'0077','cis'=>'0027'}.fetch(input('pavois_standard', value: '_default'), '0077')
describe command("v=$(grep -hiE '^[[:space:]]*umask[[:space:]]+[0-7]+' /etc/bash.bashrc 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 :

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

Attendu une ligne du type umask 027 (ou plus strict, ex. umask 077). Confirmez la valeur d'exécution dans un nouveau shell interactif avec bash -i -c 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. Affichez la ligne source avec grep -i umask /etc/bash.bashrc, et la valeur héritée à la connexion avec bash -i -c umask. Pour voir les droits d'un fichier nouvellement créé : umask dans votre shell 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 : ajoutez ou corrigez une unique ligne umask 027 (ou umask 077 pour l'ANSSI) dans /etc/bash.bashrc, placée de sorte qu'aucune ligne umask ultérieure plus laxiste ne l'écrase. Les nouveaux shells la prennent immédiatement ; les sessions en cours doivent re-sourcer le fichier ou se reconnecter.

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

file/etc/bash.bashrc
lineumask 077
moduleumask 077
resourcepam_line
pavois harden plan local

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

Impact & précautions

Renforcer l'umask par défaut est généralement sans danger mais modifie la création de fichiers pour chaque utilisateur Bash interactif. Pièges : des applications ou scripts de déploiement reposant sur des fichiers partagés en groupe (par ex. un groupe www-data/developers attendant 0664) peuvent casser s'ils héritent de 0077, qui retire l'accès au groupe. Avant d'imposer la règle, auditez les flux à répertoires partagés ; lorsque la collaboration de groupe est requise, utilisez des répertoires setgid et des ACL plutôt que d'assouplir l'umask global. Le changement n'affecte que les nouveaux fichiers, jamais les permissions existantes, et se reverse trivialement en réé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