Umask
100%

Permissions · Leçon 4

Umask

Découvrez comment l’umask d’un processus limite les bits de permissions demandés pour les nouveaux fichiers et répertoires.

Le masque de création de fichiers d’un processus, ou umask, empêche certains bits de permissions d’être définis lorsque ce processus crée un objet du système de fichiers. Il s’agit d’un masque, et non d’un mode par défaut complet : l’application demande d’abord un mode, puis le noyau retire les bits interdits par l’umask.

Conceptuellement :

mode obtenu = mode demandé ET NON umask

Les listes de contrôle d’accès et le comportement de l’application peuvent ajouter d’autres subtilités ; examinez donc le résultat lorsque les permissions exactes importent.

Afficher et définir l’umask

Exécutez umask sans opérande pour afficher le masque du shell actuel, souvent sous forme octale :

$ umask
0022

Définissez-le pour le shell actuel et les processus que celui-ci démarrera ensuite :

$ umask 027

Chaque position octale correspond au propriétaire, au groupe et aux autres. Un bit du masque retire la permission demandée correspondante : 2 masque l’écriture, 4 la lecture et 1 l’exécution.

Que modifie umask 027 dans le shell actuel ?

Calculer les modes des nouveaux fichiers et répertoires

De nombreux programmes ordinaires demandent 0666 pour les nouveaux fichiers ordinaires, car créer par défaut des fichiers exécutables serait dangereux. Ils demandent couramment 0777 pour les nouveaux répertoires, où la permission d’exécution est nécessaire à la traversée.

Avec l’umask 0022 :

fichier ordinaire : 0666 masqué par 0022 -> 0644 (rw-r--r--)
répertoire :        0777 masqué par 0022 -> 0755 (rwxr-xr-x)

L’umask ne fait que retirer les bits demandés. Il ne peut pas ajouter la permission d’exécution si l’application ne l’a pas demandée. Une application peut également demander un mode initial plus restrictif, ce qui produit un résultat lui aussi plus restrictif.

Si un programme demande le mode 0666 pour un fichier ordinaire et que l’umask vaut 0022, quel mode obtient-on ?

Si un programme demande 0777 pour un répertoire et que l’umask vaut 0027, quel mode obtient-on ?

Portée et persistance

La modification de l’umask dans un shell n’affecte ni son processus parent ni les sessions sans rapport. La valeur s’applique aux créations futures de ce shell et de ses descendants ; les fichiers existants conservent leurs modes.

Pour rendre une valeur persistante, configurez-la dans les paramètres de connexion, du shell, de PAM, du gestionnaire de services ou de l’application appropriés à votre environnement. Le bon emplacement varie, et les services peuvent définir leur propre umask. Ne supposez pas que la modification d’un fichier de shell interactif gouverne tous les processus du système.

Que devient un fichier existant lorsque vous définissez un nouvel umask ?

Leçon terminée

Vous avez terminé Umask

Vous savez maintenant prévoir comment un umask limite les permissions nouvellement demandées.

  • Afficher ou définir le masque du shell actuel avec umask.

  • Retirer les bits masqués du mode demandé par une application.

  • Distinguer les demandes courantes 0666 des fichiers et 0777 des répertoires.

  • Considérer la portée et la persistance de l’umask comme propres au processus et à l’environnement.

Conservez votre progression

Créez un compte gratuit pour enregistrer cette leçon et continuer sur n'importe quel appareil.

Créer un compte gratuit
Leçon Suivante
Retour à Permissions