[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

Ceci est une ancienne révision du document !


Permissions des systèmes de fichiers

Aperçu des permissions

Comme nous l'avons vu, Slackware Linux est un système d'exploitation multi-utilisateurs. De ce fait, les systèmes de fichiers sont également multi-utilisateurs. Cela signifie que chaque fichier ou répertoire dispose de ses propres permissions qui permettent d'attribuer ou refuser des privilèges aux différents utilisateurs. Il y a trois permissions basiques et trois jeux de permissions pour chaque fichier. Jetons un coup d’œil sur un fichier d'exemple.

darkstar:~$ ls -l /bin/ls
-rwxr-xr-x 1 root root 81820 2007-06-08 21:12 /bin/ls

Souvenez-vous, nous avons vu au chapitre 4 que ls -l liste les permissions pour un fichier ou un répertoire ainsi que l'utilisateur et le groupe qui “possède” le fichier. Dans notre cas, les permissions sont rwxr-xr-x, l'utilisateur est root et le groupe est également root. La section pour les permissions, qui est regroupée, est en fait constituée de trois ensembles. Le premier ensemble de trois lettres sont les permissions attribuées pour l'utilisateur qui possède le fichier. Le deuxième ensemble de trois lettres sont celles pour le groupe propriétaire et les trois dernières forment l'ensemble pour les permissions pour tous les autres.

Table 10.1. Permissions de /bin/ls

Ensemble Liste Signification
Propriétaire rwx Le propriétaire “root” peut lire, écrire et exécuter
Groupe r-x Le groupe “root” peut lire et exécuter
Autres r-x Tous les autres peuvent lire et exécuter

Les permissions s'expliquent d'elles-même, au moins pour les fichiers. Lire, écrire et exécuter permettent de lire le fichier, y écrire ou de l'exécuter. Mais que représentent ces permissions pour les répertoires ? En simplifiant, le droit en lecture permet de lister le contenu du répertoire (avec ls par exemple). Le droit en écriture donne la possibilité d'y créer de nouveaux fichiers tout comme de supprimer tout le contenu même si vous ne seriez pas en mesure de supprimer des fichiers à l'intérieur. Le droit en exécution permet de rentrer dans le répertoire proprement dit (avec la commande cd intégrée à bash par exemple).

Regardons les permissions pour un répertoire maintenant.

darkstar:~$ ls -ld /home/alan
drwxr-x--- 60 alan users 3040 2008-06-06 17:14 /home/alan/

Nous voyons ici les permissions pour mon répertoire personnel et ses propriétaires. Le répertoire est détenu par l'utilisateur alan et le groupe users. L'utilisateur dispose de tous les droits (rwx), le groupe ne dispose que des permissions pour lire et exécuter (r-x) et aucune autre personne n'est autorisée à faire quoi que ce soit.

chmod, chown, et chgrp

Maintenant que nous savons à quoi correspondent les permissions, comment les modifier ? Et dans le même registre, comment assigne t-on un utilisateur et un groupe propriétaire ? Les réponses sont dans cette section.

Le premier utilitaire que nous présenterons est la commande chown(1). En utilisant chown, nous pouvons (vous l'aurez deviné), changer le propriétaire d'un fichier ou d'un répertoire. chown est historiquement utilisé uniquement pour le changement de propriétaire, mais peut servir également pour le groupe propriétaire.

darkstar:~# ls -l /tmp/foo
total 0
-rw-r--r-- 1 alan users 0 2008-06-06 22:29 a
-rw-r--r-- 1 alan users 0 2008-06-06 22:29 b
darkstar:~# chown root /tmp/foo/a
darkstar:~# ls -l /tmp/foo
total 0
-rw-r--r-- 1 root users 0 2008-06-06 22:29 a
-rw-r--r-- 1 alan users 0 2008-06-06 22:29 b

En utilisant le caractère deux points après le compte utilisateur, vous pouvez indiquer un nouveau nom de groupe.

darkstar:~# chown root:root /tmp/foo/b
darkstar:~#  ls -l /tmp/foo
total 0
-rw-r--r-- 1 root users 0 2008-06-06 22:29 a
-rw-r--r-- 1 root root  0 2008-06-06 22:29 b

chown peut aussi être utilisé récursivement pour changer les attributions de tous les fichiers et répertoires sous le répertoire cible. La commande suivante changera tous les fichiers dans le répertoire /tmp/foo pour définir les attributions à root:root.

darkstar:~# chown -R root:root /tmp/foo/b

Un caractère deux points suivi d'un nom de groupe, sans nom d'utilisateur, changera simplement le groupe pour le fichier et laissera les droits de l'utilisateur intacts.

darkstar:~# chown :wheel /tmp/foo/a
darkstar:~# ls -l /tmp/foo
ls -l /tmp/foo
total 0
-rw-r--r-- 1 root wheel 0 2008-06-06 22:29 a
-rw-r--r-- 1 root root  0 2008-06-06 22:29 b

SUID, SGID, et le "Sticky" Bit

Navigation

Chapitre précédent : Utilisateurs et groupes

Chapitre suivant : Travailler avec les systèmes de fichiers

Sources

 fr:slackbook:filesystem_permissions ()
Cette traduction est plus ancienne que la page originale et est peut-être dépassée. Voir ce qui a changé.