L'umask agit comme un ensemble d'autorisations que les applications ne peuvent pas définir sur les fichiers. Il s'agit d'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 des autorisations d'exécution définies, de sorte qu'elles auraient une valeur par défaut de 666
, qui serait ensuite modifiée par umask.
Comme vous avez défini le masque umask pour supprimer les bits de lecture / écriture pour le propriétaire et les bits de lecture pour les autres, une autorisation par défaut telle que 777
dans les applications entraînerait les autorisations de fichier 133
. Cela signifierait que vous (et les autres) pourriez exécuter le fichier, et que d’autres pourraient lui écrire.
Si vous souhaitez que les fichiers ne soient pas en lecture / écriture / exécution par qui que ce soit, à l'exception du propriétaire, vous devez utiliser un umask comme 077
pour désactiver ces autorisations pour le groupe et l'ampère; d'autres.
En revanche, un umask de 000
rendra les répertoires nouvellement créés lisibles, inscriptibles et accessibles à tous (les autorisations seront 777
). Un tel umask est très peu sûr et vous ne devriez jamais définir umask sur 000
.
L'umask par défaut sur Ubuntu est 022
, ce qui signifie que les fichiers nouvellement créés sont lisibles par tout le monde, mais uniquement accessibles en écriture par le propriétaire:
[email protected]:~$ touch new-file-name
[email protected]:~$ ls -dl new-file-name
-rw-r--r-- 1 user user 0 Apr 1 19:15 new-file-name
Affichage et modification de umask
Pour afficher votre paramètre umask actuel, ouvrez un terminal et exécutez la commande:
umask
Pour modifier le paramètre umask du shell actuel en un autre paramètre, par exemple 077, exécutez:
umask 077
Pour tester si ce paramètre fonctionne ou non, vous pouvez créer un fichier nouveau (les autorisations de fichier d’un fichier existant ne seront pas affectées) et afficher des informations sur le fichier, exécutez:
[email protected]:~$ touch new-file-name
[email protected]:~$ ls -dl new-file-name
-rw------- 1 user user 0 Apr 1 19:14 new-file-name
Le paramètre umask est hérité par les processus démarrés à partir du même shell. 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 nouveau fichier créé est affecté par le même paramètre umask que dans le terminal.
Cas d’utilisation: système multi-utilisateurs
Si vous êtes sur un système partagé par plusieurs utilisateurs, il est souhaitable que les autres utilisateurs ne puissent pas lire les fichiers de votre répertoire personnel. Pour cela, un umask est très utile. Modifiez ~/.profile
et ajoutez une nouvelle ligne avec:
umask 007
Vous devez vous reconnecter pour que cette modification umask dans ~/.profile
prenne effet. Ensuite, vous devez modifier les autorisations de fichiers existantes des fichiers de votre répertoire personnel en supprimant le bit de lecture, d’écriture et d’exécution pour le monde. Ouvrez un terminal et exécutez:
chmod -R o-rwx ~
Si vous souhaitez que ce paramètre umask soit appliqué à tous les utilisateurs du système, vous pouvez modifier le fichier de profil à l’échelle du système à /etc/profile
.