Ceci est une ancienne révision du document !



Page en cours de rédaction
Page doublon ⇒ http://doc.ubuntu-fr.org/droits : Cette dernière sera supprimée après celle-ci finalisée.

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).

On parle « d'un droit » en particulier mais « des permissions » en général. On retrouvera donc au cours de cette page les 2 termes.
  • 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.

  • l'utilisateur qui en est propriétaire : user
  • le groupe auquel il appartient : group
  • le reste du monde : other
  • tout le monde : all

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 un fichier Pour un dossier

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

La section suivante (en ligne de commande) détaille un peu plus les différentes possibilités de permissions.

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)

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 :

  1. À qui s'applique le changement
    • u : user ⇒ le propriétaire
    • g : group ⇒ le groupe
    • o : other ⇒ les autres
    • a : all ⇒ tout le monde
  2. La modification que l'on veut faire
    • + : ajouter
    • - : supprimer
    • = : ne rien changer
  3. 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


1)
sous GNU/Linux, un dossier est simplement un fichier qui en contient d'autres
  • permissions.1230613966.txt.gz
  • Dernière modification: Le 30/12/2008, 06:12
  • par 213.95.41.13