Supposons que le masque par défaut est 0666. umask
0022 rendrait le nouveau masque 0644 (0666-0022 = 0644), ce qui signifie que le groupe et les autres ont des autorisations de lecture (pas d'écriture ni d'exécution).
Le chiffre "extra" (le premier nombre = 0), indique qu'il n'y a pas de modes spéciaux.
Si le mode commence par un chiffre, il sera interprété comme octal, sinon il est censé être symbolique.
0 est un chiffre, tout comme 1 (pour le bit collant) ou 6 (pour SGID). Une commande telle que celle qui chmod
peut être appelée par d'autres méthodes, telle que l' chmod ug+rw mydir
endroit où vous ajouteriez les autorisations de lecture et d'écriture à l'utilisateur et au groupe. Notez que le mode dans ce cas (ug + rw) ne commence pas par un chiffre, ne serait donc pas interprété comme octal mais plutôt symbolique.
Voir en.wikipedia.org/wiki/Chmod#Symbolic_examples pour la symbolique ainsi que www.lifftercoffee.com/2007/03/20/special-permission-modes-in-linux-and-unix/ pour un peu sur les modes spéciaux.
Je ne sais pas si vous démasqueriez le premier morceau avec umask
, mais techniquement vous pourriez. Cela expliquerait pourquoi vous le voyez presque toujours comme un zéro.
Crédit à pinkfloydx33
Le premier chiffre du masque concerne les autorisations spéciales qui ne rentrent pas aussi bien dans le modèle propriétaire / groupe / autre. Lorsque quatre chiffres sont fournis pour une autorisation de fichier, le premier fait référence à ces valeurs spéciales:
4000 = SUID
2000 = SGID
1000 = sticky bit
Le bit SUID, abréviation de set-user-ID, provoque l'exécution d'un programme exécutable avec l'ID utilisateur effectif (uid) du propriétaire - en d'autres termes, peu importe qui l'exécute, le programme s'exécute avec les droits du propriétaire. Cela se voit généralement dans les programmes qui font des choses qui nécessitent des privilèges root, mais qui sont destinés à être exécutés par des utilisateurs normaux: passwd
c'est un exemple.
Le bit SGID, abréviation de set-group-ID, est très similaire, mais s'exécute avec l' identifiant de groupe effectif (gid) du propriétaire.
Le bit collant est un peu plus compliqué, si vous voulez plus d'informations à ce sujet, vous pouvez lire la page de manuel pour sticky
.
Ces bits peuvent également être utilisés avec des répertoires, mais leur signification change.
Je ne crois pas que vous puissiez réellement définir le umask
pour vous permettre d'activer l'un de ces bits supplémentaires par défaut, mais vous ne voudrez probablement jamais le faire de toute façon.
Crédit à l' utilisateur470379
man 2 umask
(l'appel système correspondant) "seuls les bits d'autorisation de fichier demask
sont utilisés". Dansbash
, umask 1000 génère une erreur: "nombre octal hors limites". Alors pourquoi le 0 supplémentaire? Je pense que c'est juste pour montrer que le nombre est en octal.