Home » Memo

les permissions sous Linux

23 février 2010 7 Comments

Introduction et explication :

Il existe 3 permissions sous linux pour les fichiers/répertoire :
- Le droit de lecture (read (lecture) = 4) : permet de lire le contenu d’un fichier.
- Le droit d’écriture (write (écriture) = 2) : permet la modification et la suppression d’un fichier.
- Le droit d’exécution (execute (exécution) = 1) : permet de lancer le programme (fichiers binaires ou shell).

Pour un répertoire, le droit de lecture permettra de le lister (avec la commande ls par exemple), le droit d’écriture permettra la création, la modification ou la suppression d’un fichier, et le droit d’exécution permettra d’y « rentrer ».

Il existe 3 types « d’utilisateurs » (sans compter le Root) : le propriétaire (owner ou UID), le groupe (group ou GID) et le reste du monde (other).

La commande « ls -l » permet d’afficher les autorisations d’un fichier et/ou d’un répertoire. pour l’exemple, nous allons prendre le fichier « copy.sh » que j’ai dans mon « home » :

debskhaen:/home/skhaen# ls -l
-rwxr-xr-x 1 skhaen skhaen  544 fév 14 14:27 copy.sh

Le premier signe correspond au type de fichier :

  • « - » indique un fichier ordinaire
  • « d«   indique un répértoire
  • « b » indique un pilote de périphérique
  • « l » indique un lien symbolique

Découpons donc :

- | rwx | r-x | r-x 1 skhaen | admin

  • - > c’est donc un fichier ordinaire
  • le premier groupe de lettres corresponds aux droits du propriétaire/utilisateur : read/write/execute
  • le deuxième groupe de lettres définit les droits du groupe auquel appartient l’utilisateur : read/pas de permission pour l’écriture/execute
  • le dernier groupe de lettres correspond au groupe « other » (utilisateur(s) ne faisant pas partie du groupe) : read / – / execute
  • « skhaen » définit l’utilisateur
  • « admin » définit le groupe de l’utilisateur

Changer les droits :

La commande « chmod » [détails : #man chmod] (change mode) est faite spécialement pour ça !

Seul le propriétaire du fichier/répertoire (ou le root, bien entendu) peut changer les permissions :

Syntaxe de chmod :

 chmod [ a,  u,  g, o ] [ +,  - ] [ r,  w,  x ] [ non.de.fichier ]

          argument       valeur    permissions

l'argument donne les droits : a = à tous les utilisateurs "all"
                              u = au propriétaire "owner"
                              g = aux utilisateurs du groupe  "group"
                              o = aux autres groupes "other"
la valeur  +  ajoute
           -  enlève 

les permissions autorisent   r = la lecture
                             w = l'écriture
                             x = l'exécution

Si par exemple je veux changer les droits de mon fichier pour rajouter des droits à mon groupe :

debskhaen:/home/skhaen# chmod g+rwx copy.sh
debskhaen:/home/skhaen# ls -l
-rwxrwxr-x 1 skhaen skhaen  544 fév 14 14:27 copy.sh

Il existe une autre manière de le faire plus rapide : en « chiffrant » la commande : les différents droits (r/w/x) sont définit par des chiffres (4/2/1)

  • 0 : —
  • 1 : –x                                execute = 1
  • 2 : -w-                               write = 2
  • 3 : -wx
  • 4 : r–                                read = 4
  • 5 : r-x
  • 6 : rw-
  • 7 : rwx

donc pour faire la même commande (chmod g+rwx copy.sh), il « suffit » de faire :

debskhaen:/home/skhaen# chmod 775 copy.sh

[> 7 pour le propriétaire, 7 pour le groupe, 5 pour les autres ;-) ]

Et voila …

NB : si vous voulez changer le propriétaire d’un fichier ou d’un dossier, c’est la commande chown ;-)

7 Comments »

  • Memo shell linux, part 1 | Walkyr said:

    [...] ici # Share and [...]

  • uberVU - social comments said:

    Social comments and analytics for this post…

    This post was mentioned on Twitter by Skhaen: Walkyr.fr : les permissions sous linux + chmod > http://bit.ly/btV4R4

  • Pois said:

    … et les autres droits ?

  • Skhaen said:

    comme ?

  • pipou24 said:

    sticky bit et setuid

  • Skhaen said:

    ça sera pour un autre article ;-)

  • Flasher une borne WiFi OM1P/Fonera 2200 | Walkyr said:

    [...] Il faut rendre les 2 scripts exécutables pour les utiliser (on change les permissions) [...]

Leave your response!

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

This is a Gravatar-enabled weblog. To get your own globally-recognized-avatar, please register at Gravatar.