3 chiffres :
644
ugo (user group other)
4 chiffres :
0644
?ugo (??? user group other)
Quel est le premier chiffre octal dans la notation octale à 4 chiffres des permissions de fichiers Unix ?
3 chiffres :
644
ugo (user group other)
4 chiffres :
0644
?ugo (??? user group other)
Quel est le premier chiffre octal dans la notation octale à 4 chiffres des permissions de fichiers Unix ?
De man chmod
:
Un mode numérique comprend de un à quatre chiffres octaux (0-7), obtenus en additionnant les bits de valeur 4, 2 et 1. Les chiffres omis sont considérés comme des zéros initiaux. Le premier chiffre sélectionne les attributs set user ID (4), set group ID (2) et sticky (1).
Que sont "set user ID", "set group ID" et "sticky", me direz-vous ?
setuid et setgid (abréviation de "set user ID upon execution" et "set group ID upon execution", respectivement) sont des drapeaux de droits d'accès Unix qui permettent aux utilisateurs d'exécuter un exécutable avec les permissions du propriétaire ou du groupe de l'exécutable. Ils sont souvent utilisés pour permettre aux utilisateurs d'un système informatique d'exécuter des programmes avec des privilèges temporairement élevés afin d'effectuer une tâche spécifique. Bien que les privilèges supposés de l'identifiant de l'utilisateur ou de l'identifiant du groupe ne soient pas toujours élevés, ils sont au moins spécifiques.
De plus, lorsqu'ils sont appliqués à un répertoire, les paramètres setuid/setgid font en sorte que les nouveaux fichiers créés dans le répertoire héritent respectivement de l'uid ou du gid du répertoire parent. Ce comportement varie en fonction de la version d'Unix. Par exemple, linux respecte le setgid, mais ignore le setuid sur les répertoires.
Y collant :
Aujourd'hui, l'utilisation la plus courante du sticky bit est celle des annuaires. Lorsque le sticky bit est activé, seul le propriétaire de l'élément, le propriétaire du répertoire ou le superutilisateur peut renommer ou supprimer des fichiers. Si le sticky bit n'est pas activé, tout utilisateur disposant des droits d'écriture et d'exécution pour le répertoire peut renommer ou supprimer les fichiers qu'il contient, quel que soit le propriétaire. Ce bit est généralement défini dans le répertoire /tmp pour empêcher les utilisateurs ordinaires de supprimer ou de déplacer les fichiers d'autres utilisateurs.
Setgid a une autre fonction très importante que j'utilise quotidiennement mais qui n'est pas mentionnée dans l'extrait de Handyman5 (la citation est tirée de la même page que celle mentionnée ci-dessus) :
Les drapeaux setuid et setgid, lorsqu'ils sont définis sur un répertoire, ont une signification totalement différente.
En définissant l'autorisation setgid sur un répertoire (chmod g+s), les nouveaux fichiers et sous-répertoires créés dans ce répertoire héritent de son ID de groupe, plutôt que de l'ID de groupe principal de l'utilisateur qui a créé le fichier (l'ID du propriétaire n'est jamais affecté, seul l'ID du groupe l'est). Les sous-répertoires nouvellement créés héritent du bit setgid.
Cela permet donc de partager l'espace de travail d'un groupe sans avoir à demander aux membres du groupe de changer explicitement de groupe avant de créer de nouveaux fichiers ou répertoires. Notez que la définition de l'autorisation setgid sur un répertoire n'affecte que l'ID de groupe des nouveaux fichiers et sous-répertoires créés après la définition du bit setgid, et ne s'applique pas aux entités existantes. La définition du bit setgid sur les sous-répertoires existants doit être effectuée manuellement, à l'aide d'une commande telle que la suivante :
[root@foo]# find /path/to/directory -type d -exec chmod g+s {} \;
chmod g+s
signifierait l'ajout d'un 2 sur le devant de la valeur octale, ce qui ferait d'un répertoire ayant 775 permissions ( drwxrwxr-x
) en 2775 ( drwxrwsr-x
).
Comme la réponse acceptée et d'autres sont assez énigmatiques à ce sujet, je vais partager une partie de la réponse d'Ubuntu : https://askubuntu.com/a/976170
Le premier chiffre d'une permission à quatre chiffres est la somme de définir l'identifiant de l'utilisateur (4), set group id (2) et collant (1). Une autorisation à trois chiffres est identique à une autorisation à quatre chiffres, le premier chiffre étant mis à zéro. Ainsi, une autorisation à trois chiffres est identique à une autorisation à quatre chiffres, le premier chiffre étant mis à zéro :
- 0644 est exactement la même chose que 644.
- 1644 est comme 644 mais le bit collant est également activé
- 4644 est identique à 644, mais le bit "set user ID" est également activé.
Comme les autres chiffres sont cumulés pour chaque droit de position (c'est-à-dire 4 écritures 2 lectures 1 exécution pour User = 100, 200, 400, 600, 700 etc), le 4ème chiffre de tête est cumulé pour les sticky bits.
Voici un logiciel Limux/Unix facile à utiliser Calculateur d'autorisations pour vous aider à déterminer les autorisations d'un fichier ou d'un répertoire.
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.