Yves nous propose une vidéo sur le fonctionnement des permissions sous GNU/Linux :
Même si vous pensez tout connaître je vous invite à la regarder pour ne pas oublier les quelques subtilités qui peuvent exister. Et j'en profite pour compléter avec :
- SetUID (sur fichier) : exécution avec les droits du propriétaire
- SetGID (sur fichier) : exécution avec les droits du groupe propriétaire
Mais également la notion du StickyBit, que j'ai parfois utilisé dans des cas exotiques de chroot sur des dossiers. Dans le système ce droit est présent sur /tmp qui est en "1777". On peut le vérifier avec la commande stat, qui affiche les permissions en octal :
$ stat /tmp Fichier : /tmp Taille : 4096 Blocs : 8 Blocs d'E/S : 4096 répertoire Périphérique : b302h/45826d Inœud : 63105 Liens : 8 Accès : (1777/drwxrwxrwt) UID : ( 0/ root) GID : ( 0/ root
Et plus directement avec juste le résultat octal :
$ stat -c '%a' /tmp 1777
ℹ️ Retrouvez les options de stat dans le man, rubrique "FORMAT"
Enfin pour tout débutant (et pas que) le site chmodcommand.com permet de visualiser rapidement la correspondance des options et l'écriture octale :
Octal | Permission | Symbole |
---|---|---|
7 | lecture, écriture et exécution | rwx |
6 | lecture et écriture | rw- |
5 | lecture et exécution | r-x |
4 | lecture | r-- |
3 | écriture et exécution | -wx |
2 | écriture | -w- |
1 | exécution | --x |
0 | aucune | --- |
Ainsi à partir des droits d'éxecution (1), écriture (2) et lecture (4) il est possible de connaître et construire des droits grâce l'addition de ceux-ci. D'où le 777 que déconseille Yves, encore plus en récursif, qui ouvre les vannes à tout le monde.
Conclusion
La gestion des droits sous GNU/Linux est basique mais efficace. Elle est assez éloignée du monde Windows car contrairement à NTFS il n'existe pas de notion d'héritage. Pour une gestion des droits plus fine, et pas seulement avec propriétaire/groupe/autre, il faudra explorer les ACLs.
Enfin, rappelons également que la création d'un utilisateur crée également un groupe du même nom que l'utilisateur (adduser/useradd). Pour un débutant cela peut être un peu déroutant. En réalité ça reste modifiable avec usermod ou lors de la création avec des arguments et paramétrable dans le squelette (fichier /etc/default/useradd).
Complément : IT-Connect et umask (wikipedia)
Auteur : Mr Xhark
Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter
Le premier commentaire c'est pour vous 👇