Aperçu de umask
Le système d'exploitation attribue des permissions par défaut lors de la création de nouveaux fichiers ou dossiers. La valeur `umask` est 'exclue' de cette permission par défaut pour déterminer les permissions finales. `umask` est important d'un point de vue de sécurité, par exemple pour empêcher la création de fichiers de configuration importants avec des permissions trop ouvertes. Chaque session utilisateur peut avoir une valeur `umask` différente, généralement définie dans des fichiers d'initialisation de shell tels que `.bashrc` ou `.profile`.
Fonctionnement de umask
`umask` est une valeur de masque qui spécifie **les permissions à 'exclure', et non pas celles que l'on souhaite autoriser**. En d'autres termes, les permissions finales sont déterminées en soustrayant la valeur `umask` des permissions maximales par défaut.
Permissions maximales par défaut
- Fichier: `666` (lecture et écriture, pas d'exécution)
- Dossier: `777` (comprend les permissions de lecture, écriture et exécution)
Méthode de calcul de umask
`umask` s'exprime sous la forme d'un nombre octal à 3 chiffres (ex : `022`, `002`). Cette valeur est appliquée dans l'ordre : propriétaire (User), groupe (Group), autres (Others). Chaque chiffre représente la somme des bits de permission (lecture=4, écriture=2, exécution=1). Les permissions finales sont calculées comme suit :
Type | Permissions maximales par défaut | umask | Permissions finales |
---|---|---|---|
Fichier | 666 (rw-rw-rw-) | 022 (--w--w-) | 644 (rw-r--r--) |
Dossier | 777 (rwxrwxrwx) | 022 (--w--w-) | 755 (rwxr-xr-x) |
Valeurs umask courantes
Dans la plupart des systèmes, la valeur par défaut de `umask` est `0022` ou `0002`. Le `0` au début correspond aux permissions spéciales (sticky bit, SGID, SUID) et est généralement réglé à `0`.
Signification des valeurs umask courantes
- `umask 022`: Les fichiers sont créés avec les permissions `644`(rw-r--r--), les dossiers avec `755`(rwxr-xr-x). Cela accorde toutes les permissions au propriétaire, et les permissions de lecture et d'exécution au groupe et aux autres utilisateurs, ce qui est la configuration la plus courante.
- `umask 002`: Les fichiers sont créés avec les permissions `664`(rw-rw-r--), les dossiers avec `775`(rwxrwxr-x). Cela permet aux utilisateurs du même groupe d'avoir également des permissions d'écriture, favorisant ainsi la collaboration au sein du groupe.
- `umask 077`: Les fichiers sont créés avec les permissions `600`(rw-------), les dossiers avec `700`(rwx------). C'est une configuration de permissions très stricte, interdisant tout accès en dehors du propriétaire. Idéal pour les fichiers ou dossiers personnels où la sécurité est très importante.
Options principales de la commande umask
`umask` est utilisé pour vérifier la valeur actuelle ou définir une nouvelle valeur. Utilisé sans option, il affiche la valeur actuelle de `umask`.
1. Vérifier et définir la valeur umask
Commande générée :
Essayez de combiner les commandes.
Description:
`umask` Exécute la commande.
Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.
Exemples d'utilisation
Apprenez à vérifier et à définir les permissions par défaut des fichiers et des dossiers nouvellement créés à travers divers exemples d'utilisation de la commande `umask`.
Vérifier la valeur actuelle de umask
umask
Vérifiez la valeur de `umask` de la session shell actuelle sous forme octale (ex : `0022`).
Vérifier la valeur de umask en mode symbolique
umask -S
Vérifiez la valeur de `umask` sous forme de permissions finalement autorisées, comme 'u=rwx,g=rx,o=rx', au lieu de l'octale.
Définir umask à 002
umask 002
Changez `umask` pour que les fichiers nouvellement créés aient les permissions `664`(rw-rw-r--), et les dossiers les permissions `775`(rwxrwxr-x). (Autorise les utilisateurs du même groupe à écrire)
Définir une valeur umask stricte à 077
umask 077
Changez `umask` pour que les fichiers nouvellement créés aient les permissions `600`(rw-------), et les dossiers les permissions `700`(rwx------). Personne ne peut y accéder excepté le propriétaire.
Vérifier les permissions de création de fichiers/dossiers après modification de umask
umask 002
touch test_file_002.txt
mkdir test_dir_002
ls -l test_file_002.txt test_dir_002
Après avoir défini `umask` à `002`, créez de nouveaux fichiers et dossiers pour vérifier si les permissions modifiées sont appliquées avec `ls -l`.