====== Permissions UNIX ====== Les permissions UNIX constituent un système simple de définition des droits d'accès aux ressources, représentées par des fichiers disponibles sur un système informatique. Elles restent le moyen le plus utilisé pour définir les droits des utilisateurs sur les systèmes de type UNIX. Elles gèrent 3 types d'utilisateurs: * **propriétaire** (u pour //user//) : c'est souvent le créateur du fichier, ou celui a qui il a été attribué avec la commande `chown` * **groupe** (g) : par défaut c'est le groupe du créateur, mais un fichier peut être attribué à un autre groupe, ou l'utilisateur peut être dans un groupe contenant plus d'un utilisateur * **autres** (o pour //others//) : il s'agit des utilisateurs qui ne sont pas le //user// et ne font pas partie du //group// Elles gèrent 3 types d'action: * la lecture (r pour //read//) : on peut lire le fichier. Lorsque ce droit est alloué à un répertoire, il autorise l'affichage du contenu du répertoire (la liste des fichiers présents à la racine de ce répertoire). * l'écriture (w pour //write//) : on peut modifier le fichier et le vider de son contenu. Lorsque ce droit est alloué à un répertoire, il autorise la création, la suppression et le changement de nom des fichiers qu'il contient, quels que soient les droits d'accès des fichiers de ce répertoire (même s'ils ne possèdent pas eux-mêmes le droit en écriture). * l'exécution (x pour //eXecute//) : on peut exécuter le fichier s'il est prévu pour, c'est-à-dire si c'est un fichier exécutable. Lorsque ce droit est attribué à un répertoire, il autorise l'accès (ou ouverture) au répertoire. Chaque action a une valeur octale qui lui est propre (r = 4, w = 2, x = 1) et l'attribution des permissions se fait en donnant la somme des actions autorisées à l'utilisateur visé. Très souvent, vous verrez les droits mis sur 4 digits. Le premier (très souvent à 0) correspond au SUID et il est fortement déconseillé de le changer. ===== Exemples de droits ===== ^ ^ u g o ^ ^ u g o ^ ^ u g o ^ ^ | 0600 | rw------- | 0400 | r-------- | 0200 | -w------- | u - user | | 0660 | rw-rw---- | 0440 | r--r----- | 0220 | -w--w---- | g - group | | 0666 | rw-rw-rw- | 0444 | r--r--r-- | 0222 | -w--w--w- | o - others |