Droits sur les fichiers

Les permissions sur les fichiers

Parmi les commandes les plus utilisées sur un système de type Unix on trouve chmod. Celle-ci est des plus utiles mais également des plus puissantes. En effet c'est elle qui vous permettra de changer les droits des fichiers sur vos différents disques et de vous éviter bien des tracas en réseau.

Les permissions

Dès sa création, chaque fichier reçoit un certain nombre de permissions de la part du système. Ces permissions définissent les droits d'accès possibles des trois catégories d'utilisateurs :

  • Le propriétaire (user) : il s'agit de l'utilisateur à qui appartient le fichier.
  • Le groupe : dans un système Unix, les utilisateurs peuvent être regroupés pour partager des droits communs sur les fichiers. Les droits d'un groupe sont les mêmes pour chacun des utilisateurs qui constitue le groupe.
  • Les autres : il s'agit simplement du reste des utilisateurs non concernés par les deux catégories ci-avant.

    Les droits pour chaque catégorie sont la lecture, l'écriture et l'exécution. La lecture est un droit qui s'applique aussi bien à un fichier pour en lire le contenu ou un répertoire pour en lister le contenu. L'écriture permet de modifier un fichier. Dans le cas d'un répertoire, ce droit permet l'ajout ou la suppression des fichiers. Enfin, le droit d'exécution permet tout logiquement d'exécuter un fichier ou de se déplacer dans un répertoire.

    Lister les droits

    Pour savoir quels sont vos droits sur un fichier ou un répertoire, la méthode la plus simple consiste à utiliser la commande ls. L'utilisation du paramètre -l permet de connaître bien des informations comme dans l'exemple suivant :

    -rwxr-xr-- 1 root root 1204 Sep 20 22:54 test.sh
    

    On retrouve un groupe de dix caractères. Le premier caractère détermine s'il s'agit d'un répertoire (d), d'un lien (l) ou encore d'un fichier normal (-). Les neufs caractères suivants affichent les droits, classés par catégorie (utilisateur, groupe, autres). Ces droits sont lecture (r), écriture (w) et exécution (x). Plus loin on retrouve le nom du propriétaire puis celui du groupe.

    Changer les droits

    C'est dans ce cas que s'applique chmod avec la syntaxe suivante :

    chmod catégorie+/-droits fichier

    Exemples :

    chmod u+x monfichier rend exécutable monfichier pour l'utilisateur courant.
    chmod +w monfichier active le droit en écriture pour toutes les catégories.
    chmod go-rw monfichier retire les droits de lecture et d'écriture pour le groupe et les autres.

    Comme vous pouvez le voir, la catégorie est symbolisée par un caractère, u pour les propriétaires, g pour le groupe et enfin o pour les autres. Le - retire un droit et le + l'applique. Finalement, la symbolique utilisée pour l'affichage des droits est reprise dans la commande chmod (rwx).

    Il existe une autre méthode qui consiste à utiliser les valeurs correspondantes aux différents droits.

    chmod 666 monfichier permet d'autoriser la lecture et l'écriture du fichier à toutes les catégories.

    Explications :

    Lecture (400) et écriture (200) pour le propriétaire donne 600
    Lecture (40) et écriture (20) pour le groupe donne 60
    Lecture (4) et écriture (2) pour les autres donne 6

    Il suffit alors d'additionner les trois chiffres qui nous donne 666 et de les attribuer au fichier par chmod.

    Tableau récapitulatif

    Utilisateur Groupe Autres
    Lecture 400 Lecture 40 Lecture 4
    Ecriture 200 Ecriture 20 Ecriture 2
    Exécution 100 Exécution 10 Exécution 1

    En savoir plus

    Comme d'habitude, la meilleure information est le système lui-même. Consultez les man pages des commandes ls et chmod pour en apprendre d'avantage.

    Linux Magazine France n° 2 - Décembre 98