Les utilisateurs et ses droits
Utilisateurs
Les systèmes de type "UNIX" sont des systèmes multi-utilisateurs, plusieurs utilisateurs peuvent donc partager un même ordinateur, chaque utilisateur possédant un identifiant de connexion et un environnement de travail qui lui est propre.
On distingue 2 grands types de comptes utilisateur :
Les comptes des usagers sont les comptes d'utilisateur qui sont attribués à des usagers physiques de votre ordinateur. Ils doivent être créés pour chacun des usagers de votre ordinateur. C'est ce type de compte qui identifie les gens qui se servent de votre ordinateur ;
Le compte super-utilisateur est un compte unique qui dispose de toutes les autorisations. Classiquement, il sert essentiellement à l'administration de votre système. Son identifiant est root, d'où son appellation fréquente de compte root.
Au lieu de gérer les utilisateurs un par un, il est possible de créer des groupes d'utilisateurs. L'administrateur attribue des droits à un groupe au lieu d'attribuer des droits particuliers à chaque utilisateur. Chaque utilisateur appartient donc à un groupe principal et à des groupes secondaires.
Chaque utilisateur possède des droits qui lui ont été octroyés par le "super utilisateur". Nous nous intéresserons ici uniquement aux droits liés aux fichiers, mais vous devez savoir qu'il existe d'autres droits liés aux autres éléments du système d'exploitation (imprimante, installation de logiciels...).
Remarque : UID et GID
À l'identifiant de connexion d'un utilisateur correspond un identifiant numérique unique (par exemple 1001), nommé UID pour l'anglais User IDentifier. En interne, le système d'exploitation utilise exclusivement l'UID.
L'identifiant numérique du groupe principal d'un utilisateur est nommé GID pour l'anglais Group IDentifier.
La commande id dans un terminal permet d'afficher les identifiants numériques et les groupes de l'utilisateur courant.
Types de droits
Il y a 3 catégories d'utilisateurs d'un fichier :
l'utilisateur propriétaire du fichier ou user (u)
Le groupe propriétaire (g)
Les autres ou others (o)
Les « permissions » accordées à chaque utilisateur ou groupe d'utilisateurs sont de 3 types :
La lecture : Read (r)
L'écriture : Write (w)
L’exécution : eXecute (x)
Les droits sont alors affichés par une série de 9 caractères :
Propriétaire u | Groupe propriétaire g | Autres o | ||||||
---|---|---|---|---|---|---|---|---|
r | w | x | r | w | x | r | w | x |
Fondamental : Droits pour un fichier
Pour un fichier, si un utilisateur a le droit:
lecture (noté r) : il a le droit d'afficher le contenu du fichier.
écriture (noté w) : il a le droit de modifier le contenu du fichier.
exécution (noté x) : il a le droit d'exécuter le fichier s'il s'agit d'un fichier exécutable (script, programme).
Fondamental : Droits pour un dossier
Pour un dossier, si un utilisateur a le droit :
lecture (noté r) : il peut lire le contenu du dossier c'est-à-dire lister les fichiers et sous-dossiers (avec ls).
écriture (noté w) : il peut modifier le contenu du dossier, c'est-à dire créer ou supprimer des fichiers ou sous-dossiers.
exécution (noté x) : il peut traverser le dossier, c'est à dire accéder aux fichiers du répertoire et s'y déplacer (avec cd).
Complément : Écriture octale des droits
On peut écrire ces droits sous forme octale sur un mot binaire de 3 bits, avec x le bit de poids le plus faible et r le bit de poids le plus fort.
Soit :
Propriétaire u | Groupe propriétaire g | Autres o | ||||||
---|---|---|---|---|---|---|---|---|
r | w | x | r | w | x | r | w | x |
4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
On peut donc obtenir l'ensemble de ces combinaisons de droits :
0 : - - - (aucun droit)
1 : - - x (exécution)
2 : - w - (écriture)
3 : - w x (écriture et exécution)
4 : r - - (lecture seule)
5 : r - x (lecture et exécution)
6 : r w - (lecture et écriture)
7 : r w x (lecture, écriture et exécution)
Ainsi, si on veut donner tous les droits, à tout le monde (rare), on pourra donner les droits 777, ou 775 afin d'éviter que les 'autres' ne modifient les fichiers en question.