(modifié le 11 novembre 2021 à 18:53)

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