9-Commande Linux umask #darija
Table des matières:
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 secd
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.
Commande chmod sous linux (autorisations de fichiers)
Sous Linux, l'accès aux fichiers est géré via les autorisations, les attributs et la propriété des fichiers. Ce didacticiel explique comment utiliser la commande chmod pour modifier les autorisations d'accès aux fichiers et aux répertoires.
Commande chgrp sous linux (changement de groupe)
Sous Linux, chaque fichier est associé à un propriétaire et à un groupe et dispose d'autorisations qui déterminent quels utilisateurs peuvent lire, écrire ou exécuter le fichier. La commande chgrpc change la propriété du groupe des fichiers donnés.
Commande cp sous linux (copier des fichiers)
cp est un utilitaire de ligne de commande pour copier des fichiers et des répertoires sur les systèmes Unix et Linux.