GNU/Linux >> Tutoriels Linux >  >> Linux

Qu'est-ce qu'umask sous Linux ?

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.

  1. Utilisateur : utilisateur propriétaire du fichier :par défaut, cela indique qui a créé le fichier, sauf si vous le modifiez.
  2. Groupe :cela indique que les personnes du groupe auront des autorisations attribuées au fichier.
  3. 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.

  1. r - autorisation de lecture - la possibilité de lire le contenu du fichier
  2. w - autorisation d'écriture - la possibilité de modifier le contenu du fichier
  3. 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.

Indique le fichier standard simple avec différentes extensions telles que .txt, .json, .sh, .py, .rb, etc.

Indique le répertoire/dossier

Indique un lien symbolique ou un lien symbolique ou un lien symbolique

Indique un fichier de périphérique de caractères

Indique le fichier de périphérique de bloc

-   

d

l

c

b

Les neuf symboles suivants sont divisés en trois parties comme ci-dessous.

Le propriétaire du fichier peut lire le contenu, modifier le contenu et exécuter le fichier en tant que programme

Membres du groupe Les "utilisateurs" peuvent lire le contenu et exécuter le fichier en tant que programme mais ne peuvent pas modifier le contenu du fichier

Celui qui n'est pas le propriétaire n'est pas non plus le membre du groupe, c'est-à-dire autre , peut également lire le contenu du fichier et exécuter le fichier en tant que programme mais ne peut pas modifier le contenu du fichier

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.

Aucune autorisation

Autorisation d'exécution uniquement

Autorisation d'écriture uniquement

Autorisation d'écriture et d'exécution

Autorisation de lecture uniquement

Autorisation de lecture et d'exécution

Autorisation de lecture et d'écriture

Autorisation de lecture, d'écriture et d'exécution

  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 testfile
 

Avez-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.

$umask

Sortie :

0022

Nous 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 0044

Comment 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

Linux
  1. Qu'est-ce qu'un utilisateur Linux ?

  2. Qu'est-ce qu'Umask sous Linux

  3. Qu'est-ce qu'un numéro d'inode sous Linux ?

  4. Qu'est-ce que NFS et comment l'installer sous Linux

  5. À quoi sert Linux test -a command test ?

Commande Umask sous Linux

Qu'est-ce que le système de fichiers Linux ? Guide facile

Que sont les inodes sous Linux ?

Qu'est-ce qu'un fichier .bashrc sous Linux ?

Qu'est-ce que le fichier /etc/passwd sous Linux ?

Qu'est-ce qu'un fichier .sh ?