La umask agit comme un ensemble d'autorisations que les applications ne peuvent pas définir sur les fichiers. C'est un masque de création de mode de fichier pour les processus et ne peut pas être défini pour les répertoires eux-mêmes. La plupart des applications ne créeraient pas de fichiers avec les autorisations d'exécution définies, donc ils auraient par défaut 666
, qui est ensuite modifié par la umask.
Comme vous avez défini la umask pour supprimer les bits de lecture/écriture pour le propriétaire et les bits de lecture pour les autres, un valeur par défaut telle que 777
dans les applications entraînerait les autorisations du fichier étant 133
. Cela signifierait que vous (et d'autres) pourriez exécuter le fichier, et que d'autres pourraient y écrire.
Si vous voulez faire en sorte que les fichiers ne soient pas lus/écrits/exécutés par quiconque sauf le propriétaire, vous devriez utiliser une umask comme 077
pour désactiver ces autorisations pour le groupe et les autres.
En revanche, une umask de 000
rendrait les répertoires nouvellement créés lisibles, inscriptibles et descendant pour tout le monde (les autorisations seraient 777
). Une telle umask est très peu sécurisée et vous ne devriez jamais définir la umask sur 000
.
La umask par défaut sur Ubuntu était 022
ce qui signifie que les fichiers nouvellement créés sont lisibles par tout le monde, mais seulement inscriptibles par le propriétaire :
user@computer:~$ touch nouveau-nom-de-fichier
user@computeur:~$ ls -dl nouveau-nom-de-fichier
-rw-r--r-- 1 utilisateur utilisateur 0 Avr 1 19:15 nouveau-nom-de-fichier
À partir d'Ubuntu Oneiric (11.10), la umask par défaut a été assouplie à 002
, ce qui étend l'accès en écriture au groupe du propriétaire :
user@computer:~$ touch nouveau-nom-de-fichier
user@computer:~$ ls -dl nouveau-nom-de-fichier
-rw-rw-r-- 1 utilisateur utilisateur 0 Avr 1 19:15 nouveau-nom-de-fichier
Affichage et modification de la umask
Pour voir votre paramètre de umask actuel, ouvrez un terminal et exécutez la commande :
umask
Pour changer le paramètre de umask de l'invité actuel pour autre chose, par exemple 077, exécutez :
umask 077
Pour tester si ce paramètre fonctionne ou non, vous pouvez créer un nouveau fichier (les autorisations de fichier existant ne seront pas affectées) et afficher les informations sur le fichier, exécutez :
user@computer:~$ touch nouveau-nom-de-fichier
user@computer:~$ ls -dl nouveau-nom-de-fichier
-rw------- 1 utilisateur utilisateur 0 Avr 1 19:14 nouveau-nom-de-fichier
Le paramètre de umask est hérité par les processus démarrés à partir du même terminal. Par exemple, démarrez l'éditeur de texte GEdit en exécutant gedit
dans le terminal et enregistrez un fichier à l'aide de gedit. Vous remarquerez que le fichier nouvellement créé est affecté par le même paramètre de umask que dans le terminal.
Utilisation : système multi-utilisateurs
Si vous êtes sur un système partagé par plusieurs utilisateurs, il est souhaitable que les autres ne puissent pas lire les fichiers de votre répertoire personnel. Pour cela, une umask est très utile. Modifiez ~/.profile
et ajoutez une nouvelle ligne avec :
umask 007
Vous devez vous reconnecter pour que ce changement de umask dans ~/.profile
prenne effet. Ensuite, vous devez modifier les autorisations des fichiers existants dans votre répertoire personnel en supprimant les bits de lecture, écriture et exécution pour les autres. Ouvrez un terminal et exécutez :
chmod -R o-rwx ~
Si vous souhaitez que ce paramètre de umask soit appliqué à tous les utilisateurs du système, vous pourriez modifier le fichier de profil système à /etc/profile
.