Skip to main content

Les permissions

Sur les systèmes d'exploitation de type Unix, un ensemble d'indicateurs associés à chaque fichier détermine qui peut accéder à ce fichier et comment il peut y accéder. Ces indicateurs sont appelés permissions ou modes de fichiers, comme dans "mode d'accès". Le nom de la commande chmod signifie "mode de modification". Elle restreint la manière dont on peut accéder à un fichier.

Visualisation des permissions dans la liste des fichiers

user@server:~$  ls -al /mnt/demo/
total 5753224
drwxr-xr-x 4 guest guest           4096 14 août  17:14  .
drwxr-xr-x 4 root  root            4096  3 janv.  2022  ..
-rwxrw-r-- 1 guest friends           56 14 août  16:16  file-demo.txt
drwxr-xr-x 2 guest guest           4096 28 sept. 11:10  film
drwxr-xr-x 2 guest guest           4096 30 déc.   2021  serie
-rwxrw-r-- 1 guest friends  	56 14 août  16:16  file-demo.txt

Voici ce que signifie chaque partie de cette information :

- Le premier caractère représente le type de fichier : "-" pour un fichier ordinaire, "d" pour un répertoire, "l" pour un lien symbolique.
rwx Les trois caractères suivants représentent les permissions du propriétaire du fichier : le propriétaire peut lire, écrire ou exécuter le fichier.
rw- Les trois caractères suivants représentent les autorisations pour les membres du groupe de fichiers. Tout membre du groupe propriétaire du fichier peut lire ou écrire dans le fichier. Le dernier tiret est un caractère de remplacement ; les membres du groupe n'ont pas le droit d'exécuter ce fichier.
r-- Les permissions pour "autres" (tout le monde). Les autres peuvent seulement lire ce fichier.
1 Le nombre de liens matériels vers ce fichier.
guest Le propriétaire du fichier
friends Le groupe auquel appartient le dossier.
56 La taille du fichier en blocs.
14 août 16:16 Le mtime du fichier (date et heure de la dernière modification du fichier).
file-demo.txt Le nom du fichier


La commande chmod

chmod [OPTION]... MODE[,MODE]... FICHIER
			-v, --verbose          afficher un diagnostic pour chaque fichier traité
            -R, --recursive        modifier récursivement les fichiers et répertoires
                --help     		   afficher l''aide et quitter

Les lettres u, g et o signifient "utilisateur", "groupe" et "autre".

Le signe égal ("=") signifie "définir les autorisations exactement comme ceci".

Les lettres "r", "w" et "x" signifient "lire", "écrire" et "exécuter", respectivement. Les virgules séparent les différentes classes de permissions et ne sont pas séparées par des espaces.

Exemple : 

chmod u=rwx,g=rx,o=r myfile

Cette commande donne les droits suivants sur le fichier :

  • Le propriétaire du fichier peux lire, écrire et exécuter le fichier
  • Le groupe peux lire et exécuter le fichier
  • Les autre peuvent seulement le lire

Il existe une commande équivalente en numérique :

chmod 754 myfile

Ici, les chiffres 7, 5 et 4 représentent chacun individuellement les autorisations pour l'utilisateur, le groupe et les autres, dans cet ordre. 

Pour comprendre la valeur de ces trois chiffres, il faut connaitre la valeur des autorisations : 

  • 4 signifie "lire"

  • 2 signifie "écrire"

  • 1 signifie "exécuter"

  • 0 signifie "aucune permission"

Donc pour l'utilisateur on combine lire, écrire et exécuter soit 4 + 2 +1 = 7

Pour le groupe lire et exécuter soit 4 + 1 = 5

Et pour les autres seulement lire soit 4 = 4

Pour conclure la combinaison des droits a donner au fichier est 754