Temps de lecture : 5 minutes
Qu’est-ce que Umask?
Umask, ou le mode de création de fichiers par l’utilisateur, est une commande Linux qui est utilisée pour attribuer les jeux de permissions de fichiers par défaut pour les dossiers et les fichiers nouvellement créés. Le terme masque fait référence au regroupement des bits de permission, chacun d’entre eux définissant comment sa permission correspondante est définie pour les fichiers nouvellement créés. Les bits du masque peuvent être modifiés en invoquant la commande umask.
Lorsque nous utilisons le terme Umask, nous faisons référence à l’une des deux significations suivantes :
- Le masque du mode de création de fichier utilisateur qui est utilisé pour configurer les autorisations par défaut pour les fichiers et les répertoires nouvellement créés
- La commande « umask » qui est utilisée pour définir la valeur de l’umask
Comme vous le savez probablement déjà, tous les systèmes d’exploitation basés sur Unix possèdent un ensemble de propriétés qui sont utilisées pour définir qui est autorisé à lire, écrire ou exécuter des fichiers ou des répertoires spécifiques. Il existe trois catégories appelées « classes de permissions » auxquelles s’appliquent ces permissions, et elles sont notées comme suit.
- Utilisateur : L’utilisateur, par défaut, est le propriétaire ou le créateur d’un fichier ou d’un dossier. La propriété du nouveau fichier est attribuée par défaut à cet utilisateur.
- Groupe : Un Groupe est un ensemble d’utilisateurs qui partagent le même niveau d’accès ou les mêmes permissions à un fichier ou à un dossier.
- Autres : Le groupe Autre est défini comme tout utilisateur non inclus dans les deux catégories précédentes. Ces utilisateurs n’ont pas créé de fichier ou de dossier, et n’appartiennent pas à un groupe d’utilisateurs spécifique. Ce groupe comprend toute personne non identifiée comme un utilisateur ou comme faisant partie d’un groupe d’utilisateurs. Lorsque nous définissons le niveau de permission d’un fichier ou d’un dossier sur Autre, cela donne un accès de niveau de permission à toute personne qui accède au fichier ou au dossier.
Alors, que se passe-t-il lorsqu’un utilisateur crée de nouveaux fichiers et répertoires ? Le système attribue automatiquement les permissions suivantes à un fichier s’il utilise la commande touch.
Si nous créons un répertoire, il lui attribue le jeu de permissions suivant,
La syntaxe de la commande Umask
L’entrée complète de la page de manuel pour umask est la suivante .
umask The user file-creation mask is set to mode. If mode begins with a digit, it is interpreted as an octal number; otherwise it is interpreted as a symbolic mode mask similar to that accepted by chmod(1). If mode is omitted, the current value of the mask is printed. The -S option causes the mask to be printed in symbolic form; the default output is an octal number. If the -p option is supplied, and mode is omitted, the output is in a form that may be reused as input. The return status is 0 if the mode was successfully changed or if no mode argument was supplied, and false otherwise.
Pour visualiser la valeur actuelle du umask, on utilise la commande umask. L’exécution de la commande umask par elle-même fournit les permissions par défaut qui sont attribuées lorsqu’un fichier ou un dossier est créé.
# umask0022#
Pour modifier ces valeurs, nous utiliserons la commande suivante.
# umask #### umask 022
Les symboles ### dans la première commande sont utilisés à la place d’un nombre octal réel.
Ci-après, nous pouvons voir les valeurs traduites de l’octal et comment elles sont liées.
Number | Permission |
---|---|
4 | lire |
2 | write |
1 | exécuter |
Lire | Écrire | Exécuter | Valeur totale | Equivalent symbolique : |
---|---|---|---|---|
0 | 0 | 0 | 0 | |
0 | 0 | 1 | 1 | x |
0 | 2 | 0 | 2 | w |
0 | 2 | 1 | 3 | wx |
4 | 0 | 0 | 4 | r |
4 | 0 | 1 | 5 | rx |
4 | 2 | 0 | 6 | rw |
4 | 2 | 1 | 7 | rwx |
Donc, lorsque nous exécutons une commande ls, les valeurs de permissions octales ou symboliques sont affichées au début de la sortie.
# lsdrwxr-xr-x 2 root root 4096 Apr 21 12:54 test/-rw-r--r-- 1 root root 0 Apr 21 12:53 test.txt
Les permissions définies pour le répertoire test sont 755 ou ‘rwx’ ‘r-x’ ‘r-x’.
Les autorisations définies pour le fichier test.txt sont 644 ou ‘rw -‘ ‘r – -‘ ‘r – -‘.
Un tiret signifie une valeur de 0.
En-têtes symboliques
--- no permission--x execute-w- write-wx write and executer-- readr-x read and executerw- read and writerwx read, write and execute
En-têtes numériques
Comment fonctionne Umask
La commande umask masque les niveaux de permission en les qualifiant avec une certaine valeur. Pour expliquer davantage comment la valeur umask est appliquée, nous allons illustrer avec un exemple. Disons que nous voulons définir les autorisations par défaut pour tous les nouveaux fichiers ou dossiers à 644 et 755. Nous utiliserions alors la commande suivante.
# umask 022
La permission numéro « 2 » (permission d’écriture) sera « filtrée » à partir des permissions par défaut du système de 666 et 777 (d’où le nom « masque ».) Désormais, le système attribuera les permissions par défaut de 644 et 755 sur les nouveaux fichiers et répertoires. En termes simples, pour calculer les bits de permission d’un nouveau fichier ou répertoire, il suffit de soustraire la valeur de l’umask à la valeur par défaut, comme suit .
- 666 – 022 = 644
- 777 – 022 = 755
Valeur octale : Permission
- 0 : lecture, écriture et exécution
- 1 : lecture et écriture
- 2 : read and execute
- 3 : read only
- 4 : write and execute
- 5 : write only
- 6 : execute only
- 7 : no permissions
Nous pouvons utiliser les informations ci-dessus pour calculer nos permissions de fichiers. Par exemple, si notre umask est défini à 077, la permission peut être calculée comme suit :
Bit | Targeted at | Targeted at | Autorisation de fichier |
0 | Propriétaire | Lire, write and execute | |
7 | Group | No permissions | |
7 | World | Aucune autorisation |
0 : lire, écrire et exécuter
7 : aucune permission
7 : aucune permission
Un umask de 000 rendra les répertoires nouvellement créés lisibles, inscriptibles et exécutables par tous (les permissions seront 777).
Endroit de configuration de l’umask
Dans la plupart des distributions Linux, la valeur de l’umask peut être trouvée et configurée dans les emplacements suivants :
- /etc/profile – c’est là que sont stockées les variables par défaut à l’échelle du système
- /etc/bash.bashrc – c’est là que sont stockés les fichiers de configuration de l’interpréteur de commandes par défaut
Symboles umask
Comme indiqué dans la page de manuel umask ci-dessus, nous pouvons utiliser des symboles spécifiques pour spécifier les valeurs de permission que nous voulons définir. Pour afficher un aperçu de la valeur umask actuellement définie dans les symboles, nous utilisons la commande suivante :
umask -S
Pour la modifier, nous pouvons utiliser la commande dans laquelle les lettres « u », « g » et « o » représentent l’utilisateur, le groupe et other ou world, comme indiqué ci-dessous.
umask u=$, g=$, o=$
Lorsque nous paramétrons les permissions de cette manière, nous complétons chaque espace réservé « $ » par le ou les symboles de permission souhaités. Le signe égal « = » n’est pas le seul opérateur à notre disposition lorsque nous définissons des umask avec des valeurs symboliques. Nous pouvons également utiliser les opérateurs plus « + » et moins « -« .
- Le symbole = permet d’activer les permissions, en interdisant les permissions non spécifiées
- Le symbole + permet d’activer les permissions, en ignorant les permissions non spécifiées
- Le symbole – interdit d’activer les permissions, en ignorant les permissions non spécifiées
Il y a un symbole supplémentaire qui peut être utilisé lorsque nous voulons définir la même permission pour toutes les classes de permissions à la fois (utilisateur, groupe et autre), et c’est :
umask a=
Conclusion
Maintenant que nous comprenons mieux la fonction du masque de création du mode fichier utilisateur, nous pouvons en faire bon usage. Non seulement il nous fait gagner un temps précieux et améliore la sécurité, mais il nous offre également de meilleures capacités de gestion des permissions.
Démarrez dès aujourd’hui !
Vous avez encore des questions sur la façon d’utiliser umask ? Appelez-nous au 800.580.4985, ou ouvrez un chat ou un ticket avec nous pour parler avec l’une de nos équipes de solutions bien informées ou un conseiller en hébergement expérimenté dès aujourd’hui !
- .