UMASK dans les systèmes Linux ou Unix est connu sous le nom de masque utilisateur ou il est également appelé masque de création de fichier utilisateur. Il s'agit d'une autorisation de base ou d'une autorisation par défaut lorsqu'un nouveau fichier ou dossier est créé sur la machine Linux.
Il est utilisé par plusieurs commandes sous Linux telles que mkdir, touch, tee et d'autres commandes qui créent des fichiers et des répertoires. Il s'implique à chaque étape lorsqu'un nouveau fichier ou répertoire est créé.
Autorisations de fichier :
Avant d'approfondir et de comprendre umask, comprenons d'abord les autorisations de fichiers en bref.
Linux est connu pour sa sécurité. Chaque fichier ou répertoire sous Linux possède un ensemble spécifique d'autorisations et de propriétés. Jetons un coup d'œil à la classe d'utilisateurs ci-dessous.
Chaque fichier sous Linux aura ci-dessous trois classes d'utilisateurs qui lui sont associées.
- Utilisateur : utilisateur propriétaire du fichier :par défaut, cela indique qui a créé le fichier, sauf si vous le modifiez.
- Groupe :cela indique que les personnes du groupe auront des autorisations attribuées au fichier.
- Autre - Cela limite les autres utilisateurs qui ne sont pas le propriétaire ou dans le groupe attribué.
Il existe trois types d'accès aux fichiers pour chaque classe d'utilisateurs mentionnée ci-dessus.
- r - autorisation de lecture - la possibilité de lire le contenu du fichier
- w - autorisation d'écriture - la possibilité de modifier le contenu du fichier
- x - autorisation d'exécution - la possibilité d'exécuter le fichier en tant que programme
Le concept ci-dessus vous indique qui est autorisé à lire le contenu du fichier, à modifier le contenu du fichier ou à exécuter le programme.
Autorisations d'affichage - Mode symbolique :
Jetons un coup d'œil à la propriété des fichiers ci-dessous. Vous pouvez récupérer les informations sur votre machine Linux en tapant la commande ls -l.
Le premier caractère de l'image ci-dessus indique le type de fichier. Il peut y avoir différents types de fichiers sous Linux comme ci-dessous.
- |
d |
l |
c |
b |
Les neuf symboles suivants sont divisés en trois parties comme ci-dessous.
rx |
r-x |
r-x |
Autorisations d'affichage - Mode numérique :
Il existe un moyen supplémentaire de représenter les autorisations à l'aide de nombres appelés mode numérique.
Regardons le tableau des autorisations de fichiers numériques ci-dessous.
0 | --- |
1 | --x |
2 | -w- |
3 | -wx |
4 | r-- |
5 | r-x |
6 | rw- |
7 | rwx |
Si je fais référence à ce tableau d'autorisation numérique et que je l'applique sur le même répertoire mentionné dans l'image ci-dessus, l'autorisation ressemblera à ci-dessous.
rx | 4+2+1 | 7 |
r-x | 4+0+1 | 5 |
r-x | 4+0+1 | 5 |
Par conséquent, la permission numérique du répertoire testdir est 755.
Comprendre UMASK :
Créons un nouveau fichier et un nouveau répertoire en exécutant la commande ci-dessous.
$ touch testfile
$ mkdir testrep
Voyons les autorisations de testfile et testdir en exécutant la commande ls -l.
$ ls -l
Sortie :drwxr-xr-x 2 utilisateurs niteshb 4096 21 mars 22:43 testdir-rw-r--r-- 1 utilisateurs niteshb 0 21 mars 22:43 testfileAvez-vous remarqué les autorisations ? Ils sont différents, non ? Cela est dû à la valeur umask par défaut qui est définie dans la machine Linux.
Par défaut, sur la machine Linux, l'autorisation de création par défaut pour un fichier est 666, ce qui donne l'autorisation de lecture et d'écriture au propriétaire, au groupe et aux autres et 777 pour un répertoire, ce qui signifie l'autorisation de lecture, d'écriture et d'exécution au propriétaire, au groupe et aux autres. autres.
Comme nous le savons, les répertoires ne peuvent pas être exécutables. Alors pourquoi le répertoire a-t-il besoin d'une autorisation d'exécution ? Eh bien, l'autorisation d'exécution sur le répertoire permet d'accéder au contenu sous le répertoire. Si vous utilisez la commande chmod, nous modifions l'autorisation du répertoire en 666 et essayons d'accéder au répertoire par la commande cd, vous obtiendrez une erreur d'autorisation refusée.
Sur la plupart des distributions Linux, la valeur par défaut à l'échelle du système est définie dans pam_umask.so ou dans le fichier /etc/profile. En ajoutant la valeur dans le fichier ~/.bashrc dans le répertoire personnel de l'utilisateur, nous pouvons créer une valeur umask spécifique à l'utilisateur.
Pour vérifier la valeur umask, exécutez la commande umask.
$umaskSortie :
0022Nous pouvons ignorer le tout premier 0 parmi les quatre chiffres ci-dessus pour l'instant. Cela fait partie des autorisations avancées sous Linux. Ce qui peut empêcher la modification du fichier même si vous avez l'autorisation d'écriture ou nous pouvons empêcher de supprimer un fichier même si vous êtes l'utilisateur root. Dans ce blog, nous allons nous concentrer uniquement sur les trois autres chiffres.
Pour modifier la valeur umask de la session actuelle, exécutez la commande ci-dessous suivie de la valeur souhaitée.
$umask 0044Comment les fichiers et répertoires obtiennent leurs autorisations :
La valeur associée à umask n'est PAS l'autorisation que vous obtenez pour vos fichiers et répertoires.
Il y a un calcul très simple. Comme nous l'avons mentionné ci-dessus, la valeur par défaut pour un fichier est 666 et pour un répertoire, c'est 777. Pour calculer les bits d'autorisation pour les nouveaux fichiers ou répertoires, soustrayez la valeur umask de la valeur par défaut.
Par exemple, calculons comment une nouvelle autorisation de fichier ou de répertoire affectera en raison de umask.
- Fichiers :666 - 022 =644. Selon l'autorisation, le propriétaire peut lire et exécuter le fichier. Les groupes et autres peuvent lire le fichier.
- Répertoire :777 - 022 =755. Cela signifie que le propriétaire aura toutes les autorisations de lecture, d'écriture et d'accès au répertoire. Le groupe et d'autres peuvent lire et répertorier le contenu du répertoire et cd dans le répertoire.
Vous pouvez également afficher la valeur umask sous forme numérique en exécutant la commande ci-dessous.
$umask
Sortie :
u=rwx,g=rx,o=rx
Contrairement à la notation numérique, la valeur de la notation symbolique contient les bits d'autorisation qui seront définis sur les fichiers et répertoires nouvellement créés.
Définir la valeur du masque :
Le masque de création de fichier peut être défini à l'aide d'une notation octale ou symbolique. Pour rendre les modifications permanentes, définissez la nouvelle valeur umask dans un fichier de configuration global tel que /etc/profile qui affectera tous les utilisateurs ou dans les fichiers de configuration du shell d'un utilisateur tels que ~/.profile, ~/.bashrc ou ~/.zshrc qui n'affectera que l'utilisateur. Les fichiers utilisateurs ont priorité sur les fichiers globaux.
Avant de modifier le umask
Assurez-vous que la nouvelle valeur ne pose pas de risque potentiel pour la sécurité. Valeurs moins restrictives que 022
doit être utilisé avec beaucoup de prudence. Par exemple umask 000
signifie que n'importe qui aura une autorisation de lecture, d'écriture et d'exécution pour tous les fichiers nouvellement créés.
Disons que nous voulons définir des autorisations plus restrictives pour les fichiers et répertoires nouvellement créés afin que les autres ne puissent pas cd
aux répertoires et lire les fichiers. Les autorisations que nous voulons sont 750
pour les répertoires et 640
pour les fichiers.
Pour calculer le umask
value soustrayez simplement les autorisations souhaitées de celles par défaut :
Valeur Umask :777-750 = 027
Le umask
souhaité la valeur représentée en notation numérique est 027
.
Pour définir de manière permanente la nouvelle valeur à l'échelle du système, ouvrez le /etc/profile
fichier avec votre éditeur de texte et modifiez ou ajoutez la ligne suivante au début du fichier :
umask 0027
Pour que les modifications prennent effet, exécutez la commande source suivante ou déconnectez-vous et reconnectez-vous :
$source /etc/profile
Pour vérifier les nouveaux paramètres, nous allons créer un nouveau fichier et répertoire à l'aide des commandes ci-dessous.
$mkdir nouveaurep_test
$touch newtestfile
Si vous vérifiez les autorisations à l'aide de la commande ls, vous remarquerez que le nouveau fichier a 640
et le nouveau répertoire 750
autorisations, comme nous le voulions :
drwxr-xr-- 2 utilisateurs de niteshb 4096 21 mars 22:43 newtestdir
-rw-r----- 1 utilisateurs de niteshb 0 21 mars 22:43 newtestfile
Une autre façon de définir le masque de création de fichier consiste à utiliser la notation symbolique. Par exemple
umask u=rwx,g=rx,o=
est identique àumask 027
.Conclusion :
Dans ce guide, nous avons expliqué les autorisations Linux et comment utiliser le
umask
commande pour définir les bits d'autorisations pour les fichiers ou répertoires nouvellement créés.Pour plus d'informations, saisissez la commande ci-dessous dans votre terminal.
$man umask