Permissions sur les répertoires et les fichiers sous UNIX/Linux
Par Fred le jeudi 17 septembre 2009, 15:36 - Lien permanent
Les permissions sur les fichiers UNIX sont assez bien maîtrisées par tout le monde... Enfin presque car dès qu'on parle des permissions sur les répertoires les gens sont moins claires, et les permissions spéciales...
Justement, j'ai le SUID sur un répertoire (chmod 4750 repertoire) et me suis rendu compte que contrairement à ce que j'imaginais, ça n'est pas une transposition du SGID sur un répertoire (2770)
Chaque i-node est caractérisée par :
- un type de fichier (file, directory, link, socket, pipe)
- un propriétaire (ou owner)
- un groupe (ou group)
- des permissions codées sur 12 bits (4 trios ?) ou 4 chiffres en octal.
Les 4 trios codent dans l'ordre :
- les permissions spéciales
- les permissions du propriétaire
- les permissions des utilisateurs du groupe
- les permissions des autres utilisateurs
Les permissions spéciales sont :
- SUID (substitution de l'identifiant utilisateur) (s)
- SGID (substitution de l'identifiant de groupe) (s)
- Sticky bit (t)
- lecture (r)
- ecriture (w)
- exécution (x)
- r : autorise la lecture du fichier (voir son contenu)
- w: autorise l'écriture dans le fichier (la modification de son contenu)
- x: autorise l'exécution du fichier (ne nécessite pas forcément le droit de lecture !)
- s (owner) : il permet la substitution de l'ID utilisateur par le propriétaire du fichier lors de l'exécution.
- s (group) : il permet la substitution de l'ID groupe par le groupe propriétaire du fichier lors de l'exécution.
- t : historiquement, il permettait à un exécutable de rester constamment en mémoire (stick) et donc de ne pas être swappé sur disque. A priori n'a plus d'effet sur les systèmes modernes.
Appliquées au répertoires (sous UNIX le répertoire est un fichier qui contient le catalogue de son contenu) :
- r : autorise l'affichage de la liste des fichiers du répertoire
- w : autorise la modification du répertoire, c'est à dire la modification de la liste des fichiers du répertoire, soit la création et la suppression de fichiers dans le répertoire
- x : autorise la traversée du répertoire. Sans cette permission, l'utilisateur ne pourra accéder à aucune ressource du répertoire (lire, écrire ou exécuter)
- s (owner) : aucun effet.
- s (group) : les fichiers créés dans le répertoire prennent le groupe du répertoire (quelque soit le groupe de l'utilisateur qui crée le fichier)
- t : le droit de suppression de fichiers dans le répertoire est limitée aux propriétaires de fichiers, même si l'utilisateur a la permission w sur le répertoire.
man chmod



Commentaires
J'aurais appris l'effet de s et t sur les droits groupes. Sympa comme comportement !!