Sophie

Sophie

distrib > Mandriva > 10.0-com > i586 > by-pkgid > 664c05250964d29fcf1d0bb310959fbc > files > 7

mandrake-doc-fr-10.0-5.1.100mdk.noarch.rpm

<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Notions de base au sujet des fichiers</title><meta name="generator" content="DocBook XSL Stylesheets V1.64.0"><link rel="home" href="index.html" title="Manuel de référence"><link rel="up" href="unix-basics.html" title="Chapitre 1. Concepts UNIX de base"><link rel="previous" href="ch01s01.html" title="Utilisateurs et groupes"><link rel="next" href="basics-process.html" title="Les processus"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Notions de base au sujet des fichiers</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch01s01.html">Précédent</a> </td><th width="60%" align="center">Chapitre 1. Concepts UNIX de base</th><td width="20%" align="right"> <a accesskey="n" href="basics-process.html">Suivant</a></td></tr></table><hr></div><div class="sect1" lang="fr"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2529915"></a>Notions de base au sujet des fichiers</h2></div></div><div></div></div><p><a name="BId-unix-basics-pa19"></a>Les fichiers sont un
      autre domaine où <span class="application">GNU/Linux</span> diffère totalement de <span class="application">Windows</span>
      et de la plupart des autres <a name="BId-unix-basics-gt9" href="glossary.html#term-operating-system"><i class="glossterm">systèmes
      d'exploitation</i></a>. Nous n'aborderons ici que les
      différences les plus visibles. Si vous le souhaitez, vous pouvez
      lire le chapitre <a href="ext2fs.html" title="Chapitre 9. Le système de fichiers Linux">Chapitre 9, <i>Le système de fichiers Linux</i></a>, qui approfondit ce
      sujet.</p><p><a name="BId-unix-basics-pa20"></a>La première différence est une
      conséquence directe du fait que <span class="application">GNU/Linux</span> soit un système
      multiutilisateurs : chaque fichier est la propriété exclusive
      d'un utilisateur et d'un groupe. Un peu plus haut, nous avons parlé des
      utilisateurs, mais une chose que nous n'avons pas mentionné est que
      chaque utilisateur dispose de son propre répertoire (appelé son
      répertoire personnel, à savoir son
      <span class="foreignphrase"><i class="foreignphrase">
	<a name="BId-unix-basics-gt10" href="glossary.html#term-home-directory"><i class="glossterm">home
	  directory</i></a>
      </i></span> en anglais). Il est le
      propriétaire de ce répertoire, ainsi que de tous les fichiers qu'il y
      créera par la suite. Lui, et personne d'autre.</p><p><a name="BId-unix-basics-pa21"></a>Cependant, la notion de propriété d'un fichier, prise seule, ne
      servirait pas à grand-chose. Mais il y a plus : en tant que
      propriétaire d'un fichier, un utilisateur peut établir des
      <span class="emphasis"><em>droits</em></span> sur ce fichier. Ces droits distinguent
      trois catégories d'utilisateurs : le propriétaire du fichier,
      tout utilisateur qui est membre du groupe propriétaire associé au
      fichier (appelé le <a name="BId-unix-basics-gt11" href="glossary.html#term-owner-group"><i class="glossterm">groupe
	propriétaire</i></a>) mais n'est pas le propriétaire lui-même, et
      les autres, catégorie qui regroupe tout utilisateur qui n'est ni le
      propriétaire, ni un membre du groupe propriétaire.</p><p><a name="BId-unix-basics-pa22"></a>On distingue trois types de droits :</p><div class="orderedlist"><ol type="1"><li><p><a name="BId-unix-basics-pa23"></a>Droit de lecture (<tt class="literal">r</tt> pour
	  <span class="foreignphrase"><i class="foreignphrase">Read</i></span> ou lire). Sur un fichier,
	  cela autorise la lecture de son contenu. Pour un répertoire, cela
	  autorise son contenu (c'est-à-dire les fichiers qu'il contient) à être
	  listé.</p></li><li><p><a name="BId-unix-basics-pa24"></a>Droit d'écriture (<tt class="literal">w</tt> pour
	  <span class="foreignphrase"><i class="foreignphrase">Write</i></span> ou écrire). Pour un
	  fichier, cela autorise la modification de son contenu. Pour un
	  répertoire, l'accès en écriture autorise un utilisateur à ajouter
	  et retirer des fichiers de ce répertoire, même s'il n'est pas le
	  propriétaire des-dits fichiers.</p></li><li><p><a name="BId-unix-basics-pa25"></a>Droit d'exécution (<tt class="literal">x</tt> pour
	  <span class="foreignphrase"><i class="foreignphrase">eXecute</i></span> ou exécuter). Pour un fichier,
	  cela en autorise l'exécution (par conséquent, seuls les fichiers
	  exécutables devraient normalement avoir ce droit positionné). Pour un
	  répertoire, cela autorise un utilisateur à le 
          <a name="BId-unix-basics-gt12" href="glossary.html#term-traverse"><i class="glossterm">traverser</i></a> (ce qui signifie entrer
	  dans ce répertoire ou passer par celui-ci). Notez bien la séparation
	  avec le droit en lecture : il se peut très bien que vous puissiez
	  traverser un répertoire sans pouvoir lire son contenu !</p></li></ol></div><p><a name="BId-unix-basics-pa26"></a>Toutes les combinaisons de ces droits sont
      possibles : vous pouvez par exemple autoriser la lecture du
      fichier à vous seul et l'interdire à tous les autres. Vous pouvez même
      faire l'inverse, même si ce n'est pas très logique à première
      vue... En tant que propriétaire du fichier, vous pouvez en changer le
      groupe propriétaire (si et seulement si vous êtes aussi membre du
      nouveau groupe), et même vous déposséder du fichier (c'est-à-dire en
      changer le propriétaire). Bien entendu, si vous vous dépossédez d'un
      fichier, vous perdrez tous les droits sur celui-ci...</p><p><a name="BId-unix-basics-pa27"></a>Prenons l'exemple d'un fichier et
      d'un répertoire. L'affichage ci-dessous correspond à la frappe de la
      commande <span><b class="command">ls -l</b></span> 
      depuis une <a name="BId-unix-basics-gt13" href="glossary.html#term-command-line"><i class="glossterm">ligne de
	commande</i></a> :
    </p><p><a name="BId-unix-basics-pa28"></a>
      <a name="BId-unix-basics-pl1"></a></p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting">$ ls -l
	total 1
	-rw-r-----   1 reine   users           0 Jul  8 14:11 un_fichier
	drwxr-xr--   2 pierre   users        1024 Jul  8 14:11 un_repertoire/
	$
      </pre></td></tr></table><p>
    </p><p><a name="BId-unix-basics-pa29"></a>
      Les différents champs de sortie de la commande <span><b class="command">ls -l</b></span> sont
      les suivants (de gauche à droite) :
    </p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-unix-basics-pa30"></a>Les dix premiers
	  caractères désignent successivement le type du fichier et
	  les droits qui lui sont associés ; le premier caractère
	  désigne le type du fichier : c'est un tiret
	  (<tt class="literal">-</tt>) s'il s'agit d'un fichier ordinaire,
	  <tt class="literal">d</tt> si le fichier est un répertoire. Il
	  existe d'autres types de fichiers dont nous parlerons dans
	  ce manuel. Les neuf caractères qui suivent représentent les
	  droits associés au fichier. Les neuf prochains caractères
	  sont séparés en trois groupes de trois permissions. Le
	  premier groupe représente les droits associés au
	  propriétaire ; les trois prochains s'appliquent à tous
	  les utilisateurs appartenant au même groupe mais qui ne sont
	  pas le propriétaire ; et les trois derniers aux
	  autres. Un tiret (<tt class="literal">-</tt>) signifie que le
	  droit n'est pas octroyé.</p></li><li><p><a name="BId-unix-basics-pa31"></a>Vient ensuite le
	  nombre de liens du fichier. Nous verrons plus loin que
	  l'identifiant unique d'un fichier n'est pas son nom, mais un
	  numéro (le <a name="BId-unix-basics-gt14" href="glossary.html#term-inode"><i class="glossterm">numéro d'inœud</i></a>), et
	  qu'il est possible pour un fichier sur disque d'avoir
	  plusieurs noms. Pour un répertoire, le nombre de liens a une
	  signification spéciale, que nous aborderons également un peu
	  plus loin.</p></li><li><p><a name="BId-unix-basics-pa32"></a>viennent ensuite le nom de
	  l'utilisateur propriétaire du fichier et le nom du groupe
	  propriétaire ;</p></li><li><p><a name="BId-unix-basics-pa33"></a>enfin sont
	  affichés la taille du fichier (en <a name="BId-unix-basics-gt15" href="glossary.html#term-byte"><i class="glossterm">octets</i></a>) ainsi que la date de
	  sa dernière modification. Pour finir, vous trouverez
	  également le nom du fichier ou du répertoire lui-même à la
	  fin de la ligne.</p></li></ul></div><p><a name="BId-unix-basics-pa34"></a>
      Observons maintenant en détails les droits associés à l'accès de
      chacun de ces fichiers : il faut tout d'abord enlever le premier
      caractère, qui désigne le type. Donc, pour le fichier
      <tt class="filename">un_fichier</tt>, les droits accordés sont :
      <tt class="literal">rw-r-----</tt>.
      Voici comment les interpréter :
    </p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-unix-basics-pa35"></a>les trois premiers
	  (<tt class="literal">rw-</tt>) sont les droits accordés à
	  l'utilisateur propriétaire de ce fichier, en l'occurrence
	  reine. L'utilisateur reine peut donc lire le fichier
	  (<tt class="literal">r</tt>), le modifier (<tt class="literal">w</tt>) mais
	  ne peut pas l'exécuter
	  (<tt class="literal">-</tt>) ;</p></li><li><p><a name="BId-unix-basics-pa36"></a>les trois
	  suivants (<tt class="literal">r--</tt>) s'appliquent à tout
	  utilisateur qui n'est pas reine mais qui appartient au
	  groupe <tt class="literal">users</tt> : il pourra lire le
	  fichier (<tt class="literal">r</tt>), mais ne pourra ni le
	  modifier ni l'exécuter (<tt class="literal">--</tt>) ;</p></li><li><p><a name="BId-unix-basics-pa37"></a>les trois derniers (<tt class="literal">---</tt>)
	  s'appliquent à tout utilisateur qui n'est pas reine et
	  qui n'appartient pas au groupe <tt class="literal">users</tt> : un tel
	  utilisateur n'a tout simplement aucun droit sur ce fichier.</p></li></ul></div><p><a name="BId-unix-basics-pa38"></a>Pour le répertoire
      <tt class="filename">un_répertoire</tt>, les droits sont
      <tt class="literal">rwxr-xr--</tt>, et
      donc :</p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-unix-basics-pa39"></a>pierre, en tant que propriétaire du répertoire, peut en lister le
	  contenu (<tt class="literal">r</tt>), peut ajouter des fichiers dans ce
	  répertoire ou en supprimer (<tt class="literal">w</tt>), et il peut traverser ce
	  répertoire (<tt class="literal">x</tt>) ;
	</p></li><li><p><a name="BId-unix-basics-pa40"></a>tout utilisateur qui n'est pas
	  pierre mais qui appartient au groupe <tt class="literal">users</tt> pourra
	  lister le contenu de ce répertoire (<tt class="literal">r</tt>) mais ne
	  pourra pas y ajouter des fichiers
	  (<tt class="literal">-</tt>) ; par contre, il aura le droit de
	  le traverser (<tt class="literal">x</tt>) ;
	</p></li><li><p><a name="BId-unix-basics-pa41"></a>tout autre utilisateur ne
	  pourra que lister les fichiers de ce répertoire
	  (<tt class="literal">r</tt>), mais c'est tout. Il sera incapable de le
	  traverser.
	</p></li></ul></div><p><a name="BId-unix-basics-pa42"></a>Il existe <span class="emphasis"><em>une</em></span>
      exception à ces règles : <tt class="literal">root</tt>. <tt class="literal">root</tt> peut changer
      les attributs (droits, propriétaire, groupe propriétaire) de tous les
      fichiers, même s'il n'en est pas le propriétaire. Cela veut dire qu'il
      peut aussi s'en attribuer la propriété ! Il peut lire des
      fichiers sur lesquels il n'a pas le droit de lecture, traverser des
      répertoires auxquels il n'aurait normalement pas accès, et ainsi de
      suite. Et s'il lui manque un droit, il lui suffit simplement de se le
      rajouter...</p><p><a name="BId-unix-basics-pa43"></a>
      Pour conclure, il est utile de mentionner les différences entres les
      noms de fichiers dans le monde <span class="application">UNIX</span> et le monde <span class="application">Windows</span>.
      <span class="application">UNIX</span> permet une flexibilité bien plus grande et a moins de
      limitations :</p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-unix-basics-pa44"></a>un nom de fichier
	  peut comporter n'importe quel caractère (à l'exception du
	  caractère <span class="acronym">ASCII</span> 0, qui dénote la fin d'une chaîne de
	  caractères, et <span><b class="keycap">/</b></span>, qui est le séparateur de
	  répertoires), même des caractères non imprimables. De plus,
	  <span class="application">UNIX</span> est sensible à la casse : les fichiers
	  <tt class="filename">readme</tt> et <tt class="filename">Readme</tt>
	  sont différents, car <tt class="literal">r</tt> et
	  <tt class="literal">R</tt> sont deux caractères
	  <span class="emphasis"><em>distincts</em></span> pour les systèmes basés sur
	  <span class="application">UNIX</span> ;</p></li><li><p><a name="BId-unix-basics-pa45"></a>comme vous avez pu le
	  remarquer, un nom de fichier ne comporte pas forcément une extension,
	  à moins que vous le vouliez. Les extensions de fichier n'identifient
	  pas le contenu desdits fichiers sous <span class="application">GNU/Linux</span>. D'ailleurs, il en va
	  de même sur tous les systèmes d'exploitation. Cependant, ces
	  « <span class="quote">extensions</span> » ainsi nommées sont toujours très pratiques.
	  Le caractère point (<tt class="literal">.</tt>) sous <span class="application">UNIX</span> n'est qu'un
	  caractère comme les autres. Notons que les noms de fichier commençant
	  avec un point sous <span class="application">UNIX</span> sont des « <span class="quote">fichiers
	    cachés</span> ».</p></li></ul></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left"><a name="unix-basics-pa45a"></a>Note</th></tr><tr><td colspan="2" align="left" valign="top"><p><a name="BId-unix-basics-pa46"></a>Toutefois il est à signaler que certaines applications
	graphiques (gestionnaires de fichiers, applications bureautiques,
	etc.) utilisent effectivement les extensions de noms de fichiers
	pour reconnaître facilement les formats de fichier. C'est donc
	une bonne idée d'utiliser ces extensions pour les applications
	qui en tirent parti.</p></td></tr></table></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch01s01.html">Précédent</a> </td><td width="20%" align="center"><a accesskey="u" href="unix-basics.html">Niveau supérieur</a></td><td width="40%" align="right"> <a accesskey="n" href="basics-process.html">Suivant</a></td></tr><tr><td width="40%" align="left" valign="top">Utilisateurs et groupes </td><td width="20%" align="center"><a accesskey="h" href="index.html">Sommaire</a></td><td width="40%" align="right" valign="top"> Les processus</td></tr></table></div></body></html>