Android

Commande Umask sous Linux

9-Commande Linux umask #darija

9-Commande Linux umask #darija

Table des matières:

Anonim

Sur les systèmes d'exploitation Linux et Unix, tous les nouveaux fichiers sont créés avec un ensemble d'autorisations par défaut. L'utilitaire umask vous permet d'afficher ou de définir le masque de création en 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 des autorisations Linux.

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

  • le propriétaire du fichier.les membres du groupe.tout le monde.

Il existe trois types d'autorisations qui 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 la commande ls :

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 spécial de fichier.

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

Le caractère r avec une valeur octale de 4 signifie lecture, w avec une valeur octale de 2 pour é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 rwxr-xr-x dessus ( rwxr-xr-x ) signifie que le propriétaire a des autorisations de lecture, d'écriture et d'exécution ( rwx ), le groupe et les autres ont des autorisations de lecture et d'exécution.

Si nous représentons les autorisations de fichier en utilisant une notation numérique, nous arriverons au nombre 755 :

  • Propriétaire: rwx = 4+2+1 = 7 Groupe: rx = 4+0+1 = 5 Autre: rx = 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 cas, 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 la commande chmod et la propriété à l'aide de la commande chown .

Comprendre umask

Par défaut, sur les systèmes Linux, les autorisations de création par défaut sont 666 pour les fichiers, ce 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 l'autorisation de lecture, d'écriture et d'exécution pour l'utilisateur, le groupe et 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 de l'utilitaire umask .

umask affecte uniquement 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 .

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

umask

La sortie inclura le

022

La valeur umask contient les bits d'autorisation qui ne seront PAS définis 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 uname 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 lire que 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 dans le répertoire. Le groupe et d'autres personnes peuvent se cd dans le répertoire et répertorier et lire les fichiers.

Vous pouvez également afficher la valeur du masque en notation symbolique à l'aide de l'option -S :

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éfinition de 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 globale comme /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 utilisateur ont priorité sur les fichiers globaux.

Avant d'apporter des modifications à la valeur umask , assurez-vous que la nouvelle valeur ne présente pas de risque de sécurité potentiel. Les valeurs moins restrictives que 022 doivent être utilisées avec une grande prudence. Par exemple, umask 000 signifie que n'importe qui aura les droits de lecture, d'écriture et d'exécution sur tous les fichiers nouvellement créés.

Supposons 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 accéder 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 la valeur umask , soustrayez simplement les autorisations souhaitées de celles par défaut:

Valeur Umask: 777-750 = 027

La valeur umask souhaitée représentée en notation numérique est 027 .

Pour définir définitivement la nouvelle valeur à l'échelle du système, ouvrez le fichier /etc/profile 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 commande source suivante ou déconnectez-vous et connectez-vous:

source /etc/profile

Pour vérifier les nouveaux paramètres, nous allons créer un nouveau fichier et répertoire à l'aide de mkdir et touch :

mkdir newdir touch newfile

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 la commande umask pour définir les bits d'autorisation pour les fichiers ou répertoires nouvellement créés.

Pour plus d'informations, tapez man umask dans votre terminal.

terminal umask