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 des autorisations d'exécution définies. Elles ont donc la valeur par défaut 666
, qui est ensuite modifiée par umask.
Lorsque vous avez défini la commande umask pour supprimer les bits de lecture / écriture pour le propriétaire et les bits de lecture pour les autres, une valeur par défaut, telle que 777
dans les applications, entraînerait l'autorisation des fichiers 133
. Cela signifierait que vous (et d'autres) pourriez exécuter le fichier et que d'autres pourraient l'écrire.
Si vous souhaitez que les fichiers ne soient pas lus / écrits / exécutés par une personne autre que le propriétaire, vous devez utiliser un umask, comme 077
désactiver ces autorisations pour le groupe et les autres.
En revanche, un umask 000
rendra les répertoires nouvellement créés en lecture, en écriture et en descente pour tout le monde (les autorisations seront 777
). Un tel umask est très dangereux et vous ne devriez jamais le régler sur 000
.
Le umask par défaut sur Ubuntu était 022
ce qui signifie que les fichiers nouvellement créés sont lisibles par tout le monde, mais uniquement par le propriétaire en écriture:
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw-r--r-- 1 user user 0 Apr 1 19:15 new-file-name
À partir de Ubuntu Oneiric (11.10), l’umask par défaut a été assoupli 002
, ce qui élargit l’accès en écriture au groupe du propriétaire:
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw-rw-r-- 1 user user 0 Apr 1 19:15 new-file-name
Visualiser et modifier umask
Pour afficher votre paramètre umask actuel, ouvrez un terminal et exécutez la commande suivante:
umask
Pour changer le paramètre umask du shell actuel en quelque chose d'autre, par exemple 077, exécutez:
umask 077
Pour vérifier si ce paramètre fonctionne ou non, vous pouvez créer un nouveau fichier (les autorisations de fichier d'un fichier existant ne seront pas affectées) et afficher des informations sur le fichier en exécutant:
user@computer:~$ touch new-file-name
user@computer:~$ 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 l'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 umask que dans le terminal.
Cas d'utilisation: système multi-utilisateur
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 de base. Pour cela, un umask est très utile. Editez ~/.profile
et ajoutez une nouvelle ligne avec:
umask 007
Vous devez vous reconnecter pour que cette modification d'umask ~/.profile
prenne effet. Ensuite, vous devez modifier les autorisations de fichier existantes des fichiers de votre répertoire personnel en supprimant les bits lecture, écriture et exécution pour le monde entier. 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 éditer le fichier de profil du système dans /etc/profile
.
app_mode 666 rw- rw- rw-
umask 644 --0 -00 -00
file_mode 022 --- -w- -w-