Ceci est une ancienne révision du document !
Permissions (ou droits d'accès)
Ubuntu vous permet, pour chaque fichier ou dossier1), d'autoriser ou restreindre l'accès à ce fichier en lecture, écriture et exécution, et ce, pour son propriétaire, son groupe et les autres (le reste du monde).
Les 3 types de permissions
- lecture : read
- écriture : write
- exécution : execute
Le droit de lecture autorise à lire le contenu d'un fichier, ou pour un dossier, à lister son contenu.
Le droit d'écriture autorise à écrire dans le fichier ou le dossier.
Le droit d'exécution permet de lancer un fichier en tant que programme exécutable, ou dans le cas d'un dossier, permet d'entrer dans le répertoire.
Qui est affecté ?
- l'utilisateur qui en est propriétaire : user
- le groupe auquel il appartient : group
- le reste du monde : other
- tout le monde : all
Voir les permissions
Graphiquement
Sous Nautilus (Ubuntu), faites un clic droit sur un fichier ou dossier puis choisissez propriétés. Rendez-vous dans l'onglet permissions.
Pour le Propriétaire et le Groupe, vous pouvez choisir dans le menu déroulant correspondant de donner les droits en lecture et écriture ou lecture seule.
Pour les Autres, vous pouvez choisir entre lecture et écriture, lecture seule et aucun.
Vous pouvez choisir le groupe auquel appartient le fichier (par défaut, le groupe du propriétaire, sauf cas particulier).
Lorsqu'il s'agit d'un dossier, pour le Propriétaire et Groupe vous pouvez choisir entre Création et suppression des fichiers, Accès aux fichiers, et Lister seulement les fichiers.
Pour les Autres, vous pouvez choisir entre Création et suppression des fichiers, Accès aux fichiers, Lister seulement les fichiers et Aucun
En ligne de commande
Vous remarquez dans l'introduction des lettres en gras dans les termes anglais. Ces lettres sont utilisées pour gérer les permissions en ligne de commande.
Si l'on reprend les lettres données pour lecture/écriture/exécution (read/write/execute), nous obtenons : rwx
et pour propriétaire/groupe/autres (user/group/other), nous obtenons : ugo
Explication par l'exemple
Dans un terminal, exécutez la commande
ls -l
Ceci listera le contenu du répertoire courant :
drwxr-xr-x 6 cyrille cyrille 4096 2008-10-29 23:09 Bureau drwxr-x--- 2 cyrille cyrille 4096 2008-10-22 22:46 Documents lrwxrwxrwx 1 cyrille cyrille 26 2008-09-22 22:30 Examples -> /usr/share/example-content -rw-r--r-- 1 cyrille cyrille 1544881 2008-10-18 15:37 forum.xcf drwxr-xr-x 7 cyrille cyrille 4096 2008-09-23 18:16 Images drwxr-xr-x 2 cyrille cyrille 4096 2008-09-22 22:45 Modèles drwxr-xr-x 267 cyrille cyrille 20480 2008-10-27 22:17 Musique drwxr-xr-x 2 cyrille cyrille 4096 2008-09-22 22:45 Public drwxr-xr-x 2 cyrille cyrille 4096 2008-10-26 13:14 Vidéos
Ce qui nous intéresse est la première colonne composé de 10 caractères.
Le premier caractère nous indique la nature du fichier :
- - : fichier
- d : dossier
- l : lien
Les 9 suivants sont les 3 droits rwx répétés pour user group et other. Pour chaque droit, on peut avoir le r, w ou x ou un tiret - qui veut dire que ce droit est restreint.
Pour le fichier forum.xcf
, par exemple, on a :
-rw-r--r--
- Le 1er caractère est - ⇒ c'est un fichier.
- Le premier groupe de 3 caractères est rw- ⇒ le propriétaire a le droit de lecture et écriture (mais pas d'exécution) sur le fichier.
- Les 2 groupes suivants sont r-- ⇒ Les utilisateurs du groupe et les autres n'ont que le droit de lecture (pas d'écriture, ni d'exécution)
Modifier les permissions
Graphiquement
Dans Nautilus, il vous suffit de changer les valeurs des menus déroulants dans l'onglet permissions (cf. ci-dessus).
En ligne de commande
Un fichier a un propriétaire et un groupe. Nous pouvons les changer.
chown
La commande chown (pour change owner) permet de changer le propriétaire du fichier.
sudo chown toto fichier1
Le fichier fichier1
appartient maintenant à l'utilisateur toto
.
chown permet aussi de changer en une seule commande le propriétaire et le groupe du fichier :
sudo chown toto:lesPotes fichier1
Le fichier fichier1
appartient alors à l'utilisateur toto
et au groupe lesPotes
.
chgrp
La commande chgrp (pour change group) permet de changer le groupe auquel appartient le fichier. Tous les membres de ce groupe seront concernés par les permissions du groupe (2ème série de rwx)
sudo chgrp mesPotes fichier2
Le fichier fichier2
appartient maintenant au groupe mesPotes
. Tous les membres du groupe mesPotes
auront accès à ce fichier selon les permissions du groupe.
chmod
La commande chmod (pour change mode) est celle qui permet de modifier réellement les permissions d'un fichier.
On peut l'utiliser de plusieurs façons.
En gérant chaque droit séparément
De cette façon, on va choisir :
- À qui s'applique le changement
- u : user ⇒ le propriétaire
- g : group ⇒ le groupe
- o : other ⇒ les autres
- a : all ⇒ tout le monde
- La modification que l'on veut faire
- + : ajouter
- - : supprimer
- = : ne rien changer
- Le droit que l'on veut modifier
- r : read ⇒ lecture
- w : write ⇒ écriture
- x : execute ⇒ exécution
Par exemple :
chmod o-w fichier3
enlèvera le droit d'écriture pour les autres.
chmod a+x
ajoutera le droit d'exécution à tout le monde.
etc.
En octal
En octal, chaque « groupement » de droits (pour user, group et other) sera représenté par un chiffre et à chaque droit correspond une valeur :
- r = 4
- w = 2
- x = 1
- - = 0
Par exemple,
- Pour rwx, on aura : 4+2+1 = 7
- Pour rw-, on aura : 4+2+0 = 6
- Pour r--, on aura : 4+0+0 = 4
Reprenons le dossier Documents
. Ses permissions sont :
drwxr-x---
En octal, on aura 750 :
rwx r-x --- 7(4+2+1) 5(4+0+1) 0(0+0+0)
Pour mettre ces permissions sur le dossier on taperait donc la commande :
chmod 750 Documents
Récursivement
Pour chacune de ces commandes, on peut les lancer récursivement sur un répertoire. C'est à dire que l'action sera effectuée sur le répertoire désigné et sur tous les fichiers ou répertoires qu'il contient. Ceci ce fait en ajoutant l'option -R
Par exemple :
chmod -R 750 monDossier/
donnera tous les droits au propriétaire, les droits de lecture et exécution au groupe et aucuns droits aux autres…
Contributeurs : _Enchained