GNU/Linux >> Tutoriels Linux >  >> Linux

Commande Umask sous Linux

Sur les systèmes d'exploitation Linux et Unix, tous les nouveaux fichiers sont créés avec un ensemble d'autorisations par défaut. Le umask L'utilitaire vous permet d'afficher ou de définir le masque de création du mode fichier, qui détermine les bits d'autorisation pour les fichiers ou répertoires nouvellement créés.

Il est utilisé par mkdir, touch, tee et d'autres commandes qui créent de nouveaux fichiers et répertoires.

Autorisations Linux #

Avant d'aller plus loin, expliquons brièvement le modèle d'autorisations Linux.

Sous Linux, chaque fichier est associé à un propriétaire et à un groupe et se voit attribuer des droits d'accès pour trois classes d'utilisateurs différentes :

  • Le propriétaire du fichier.
  • Les membres du groupe.
  • Tous les autres.

Trois types d'autorisations s'appliquent à chaque classe :

  • L'autorisation de lecture.
  • L'autorisation d'écriture.
  • L'autorisation d'exécution.

Ce concept vous permet de spécifier quels utilisateurs sont autorisés à lire le fichier, à écrire dans le fichier ou à exécuter le fichier.

Pour afficher les autorisations de fichier, utilisez le ls commande :

ls -l dirname
drwxr-xr-x 12 linuxize users 4.0K Apr  8 20:51 dirname
|[-][-][-]    [------] [---]
| |  |  |        |       |       
| |  |  |        |       +-----------> Group
| |  |  |        +-------------------> Owner
| |  |  +----------------------------> Others Permissions
| |  +-------------------------------> Group Permissions
| +----------------------------------> Owner Permissions
+------------------------------------> File Type

Le premier caractère représente le type de fichier qui peut être un fichier normal (- ), un répertoire (d ), un lien symbolique (l ), ou tout autre type de fichier spécial.

Les neuf caractères suivants représentent les autorisations, trois ensembles de trois caractères chacun. Le premier ensemble affiche les autorisations du propriétaire, le second les autorisations du groupe et le dernier ensemble affiche les autorisations de tous les autres.

Caractère r avec une valeur octale de 4 signifie lire, w avec une valeur octale de 2 pour l'écriture, x avec une valeur octale de 1 pour l'autorisation d'exécution, et (- ) avec une valeur octale de 0 pour aucune autorisation.

Il existe également trois autres types d'autorisations de fichiers spéciaux :setuid , setgid, et Sticky Bit .

Dans l'exemple ci-dessus (rwxr-xr-x ) signifie que le propriétaire a les droits de lecture, d'écriture et d'exécution (rwx ), le groupe et d'autres ont des autorisations de lecture et d'exécution.

Si nous représentons les autorisations de fichiers à l'aide d'une notation numérique, nous arriverons au nombre 755 :

  • Propriétaire :rwx =4+2+1 = 7
  • Groupe :r-x =4+0+1 = 5
  • Autre :r-x =4+0+1 = 5

Lorsqu'elles sont représentées en notation numérique, les autorisations peuvent avoir trois ou quatre chiffres octaux (0-7). Le premier chiffre représente les autorisations spéciales, et s'il est omis, cela signifie qu'aucune autorisation spéciale n'est définie sur le fichier. Dans notre exemple 755 est identique à 0755 . Le premier chiffre peut être une combinaison de 4 pour setuid , 2 pour setgid , et 1 pour Sticky Bit .

Les autorisations de fichiers peuvent être modifiées à l'aide de chmod commande et propriété en utilisant le chown commande.

Comprendre umask #

Par défaut, sur les systèmes Linux, les autorisations de création par défaut sont 666 pour les fichiers, qui donne l'autorisation de lecture et d'écriture à l'utilisateur, au groupe et à d'autres, et à 777 pour les répertoires, ce qui signifie une autorisation de lecture, d'écriture et d'exécution accordée à l'utilisateur, au groupe et à d'autres. Linux n'autorise pas la création d'un fichier avec des autorisations d'exécution.

Les autorisations de création par défaut peuvent être modifiées à l'aide du umask utilitaire.

umask n'affecte que l'environnement shell actuel. Sur la plupart des distributions Linux, la valeur umask par défaut à l'échelle du système est définie dans le pam_umask.so ou /etc/profile fichier.

Si vous souhaitez spécifier une valeur différente pour chaque utilisateur, modifiez les fichiers de configuration du shell de l'utilisateur, tels que ~/.bashrc ou ~/.zshrc . Vous pouvez également modifier la session en cours umask valeur en exécutant umask suivi de la valeur souhaitée.

Pour afficher la valeur actuelle du masque, tapez simplement umask sans aucun argument :

umask

La sortie inclura le

022

Le umask la valeur contient les bits d'autorisation qui ne seront PAS être défini sur les fichiers et répertoires nouvellement créés.

Comme nous l'avons déjà mentionné, les autorisations de création par défaut pour les fichiers sont 666 et pour les répertoires 777 . Pour calculer les bits d'autorisation des nouveaux fichiers, soustrayez la valeur umask de la valeur par défaut.

Par exemple, pour calculer comment umask 022 affectera les fichiers et répertoires nouvellement créés, utilisez :

  • Fichiers :666 - 022 = 644 . Le propriétaire peut lire et modifier les fichiers. Le groupe et les autres ne peuvent que lire les fichiers.
  • Répertoires :777 - 022 = 755 .Le propriétaire peut cd dans le répertoire, et lister, lire, modifier, créer ou supprimer les fichiers du répertoire. Le groupe et les autres peuvent cd dans le répertoire et lister et lire les fichiers.

Vous pouvez également afficher la valeur du masque en notation symbolique en utilisant le -S choix :

umask -S
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 le nouveau umask valeur dans un fichier de configuration global comme /etc/profile fichier 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 valeur, 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 a des autorisations de lecture, d'écriture et d'exécution sur 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 valeur, 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 définitivement la nouvelle valeur à l'échelle du système, ouvrez le /etc/profile fichier avec votre éditeur de texte :

sudo nano /etc/profile

et modifiez ou ajoutez la ligne suivante au début du fichier :

/etc/profile
umask 027

Pour que les modifications prennent effet, exécutez la source suivante commande 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 en utilisant mkdir et touch :

mkdir newdirtouch newfile

Si vous vérifiez les permissions en utilisant le ls commande, vous remarquerez que le nouveau fichier a 640 et le nouveau répertoire 750 autorisations, comme nous le voulions :

drwxr-x--- 2 linuxize users 4096 Jul  4 18:14  newdir
-rw-r----- 1 linuxize users    0 Jul  4 18:14  newfile

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, tapez man umask dans votre terminal.

Si vous avez des questions, veuillez laisser un commentaire ci-dessous.


Linux
  1. Commande Linux mv

  2. Linux du command

  3. Commande IP Linux

  4. Commande cd Linux

  5. umask :commande introuvable

Commande W sous Linux

À la commande sous Linux

Commande Chmod sous Linux

Commande Df sous Linux

Commande Umask sous Linux

Exemples de commandes Linux chmod