Chmod ?

 Tag : Chmod     Tag : Récursivité     Tag : Droit     Tag : Groupe     Tag : GNU/Linux   

Chmod est une commande Unix qui permet de définir les droits que nous avons sur un fichier et/ou un dossier. C'est une commande importante que j'utilise souvent pour rajouter le droit d'exécution à des fichiers que je viens de télécharger. Mais son explication est souvent évasive dans certaines documentation, on vous dit de faire cela sans trop vous expliquer. Je me porte donc garant de votre compréhension sur cette commande basique.

Il faut d'abord comprendre que sur GNU/Linux, il existe 3 droit :

Remarque: dans le cas d'un dossier, le droit exécuter permet de pouvoir ouvrir le dossier. C'est à dire que si un dossier est définit tel que le droit d'exécution n'est pas autoriser pour vous, vous ne pourrez pas y entrer.

On remarque donc qu'il est facile de protéger un fichier et/ou un dossier qui peut contenir des informations secrète comme des films ... hum ... hum ... Bref ! Ces droits sont affectés à qui ? Ils sont affecté à l'utilisateur (u) qui est le propriétaire du fichier et/ou dossier, au groupe auxquels l'utilisateur appartient, aux autres et à tout le monde.

Prenons donc l'exemple d'un dossier qui est accessible à absolument tout le monde. En faisant la commande ls -l, on obtient ceci :
Code : BASH
  1. drwxrwxrwx moi root [...] MonDossierAccessible

Comment faire en sorte que ce dossier ne soit accessible en écriture que par moi ? Eh bien c'est là où intervient a commande chmod. Il suffit de faire :
Code : BASH
  1. chmod go-r MonDossierAccessible

On remarque déjà le mot chmod ... primordial ... mais aussi go ... C'est quoi go ? C'est g + o (logique ?!) avec g qui veut dire Group (le groupe) et o Other (Autre). Au final go veut dire `le groupe et les autres`.
On remarque aussi le -r ... Sa veut dire moins (-) Read qui veut dire en français, moins lire ... Vous comprenez ?

En gros, la phrase veut dire `au groupe (g) et aux autres (o), j'enlève (-) le droit de lire (r)`. J'oubliais, il manque aussi le dossier MonDossierAccessible. Donc si on reprend :
Au groupe et aux autres, j'enlève le droit de lire pour le dossier MonDossierAccessible

Simple non ? Maintenant, prenons le cas où je souhaiterais enlever le droit de lecture et d'écriture :
Code : BASH
  1. chmod go-r-w MonDossierAccessible

On note l'ajout du -w qui veut dire j'enlève la possibilité d'écrire ... Et logique pour enlever le droit d'exécution :
Code : BASH
  1. chmod go-r-w-x MonDossierAccessible

Et là, votre dossier n'est accessible que par vous l'utilisateur (u). Cependant, pour faire court, on peut rassembler le tous comme ceci :
Code : BASH
  1. chmod go-rwx MonDossierAccessible

Qui veut tout simplement dire `au groupe et aux autres, j'enlève le droit à la lecture, à l'écriture et à l'exécution pour le dossier MonDossierAccessible`.

On pouvait aussi faire cette notation un peu plus longue :
Code : BASH
  1. chmod g-rwx,o-rwx MonDossierAccessible


On note ici l'apparition de la virgule ... Ensuite, c'est votre façon d'écrire qui diffèrera. Certains préfèrent une écriture longue est très explicite alors que d'autres voudront une écriture très courte moins expressive ... C'est à vous de voir.

Maintenant, il faut comprendre un bon point très simple mais très pratique. Imaginons que vous vouliez que le dossier ainsi que tout les fichiers de ce dossier ne soit accessible que par vous. Il suffit de rajouter l'option Recursive qui permet d'attribuer les droits définit au dossiers à tout les fichiers contenus dans le dit-dossier et à tout les sous-dossiers ... Bref, du travaille en moins, sa fait :
Code : BASH
  1. chmod -R go-rwx MonDossierAccessible


Le seul petit risque que vous ne devez absolument pas faire c'est :
Code : BASH
  1. sudo chmod -R /

Dans ce cas ci, j'ai modifié les droits de la totalité des fichiers de mon disque dur ... Mon système d'exploitation est alors inutilisable et il faut donc que je réinstalle la bête ! C'est juste le point noir de cette technique mais sinon, vous pouvez vous amusez à rendre inaccessible vos dossiers et vos fichiers.

Remarque: on note donc une significative séparation des droits pour les fichiers et les dossiers. Ceci en fait une forte de sécurité pour GNU/Linux car dans le cas où vous seriez victime d'une attaque (ce qui est très rare pour une ordinateur bureautique), les fichiers primordiaux au bon fonctionnement de GNU/Linux ainsi que les données des autres utilisateurs ne seront pas touchés car les attaques ce plient aux droits que vous avez (la modification donc de fichiers tels que ceux du démarrage de votre ordinateur est alors impossible sans connaître le mot de passe).

Par dinosaure, le 02/12/2009 à 22h37


Les commentaires

Il n'y a aucun commentaire sur cet article.

Poster un commentaire


Pseudonyme
Site
Email
Commentaire