[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

debian-guide_fr-1.0_chap9.sgml



<chapt> Un peu plus sur les fichiers

<p>
Dans la partie 7.2, nous avons montré commment déplacer et renommer
des fichiers avec <prgn>mv</prgn>, comment les copier avec
<prgn>cp</prgn>, comment les détruire avec <prgn>rm</prgn>, comment
détruire des répertoires avec <prgn>rmdir</prgn> et comment en créer
avec <prgn>mkdir</prgn>. Ce chapitre va couvrir des aspects un peu
plus avancés du traitement de fichiers.

<sect> Permissions

<p>
 Les systèmes Unix et GNU sont paramétrables pour pouvoir autoriser de
 nombreuses personnes à utiliser la même machine tout en conservant
 secrets certains fichiers ou en empêchant certaines personnes de
 modifier certains fichiers. Vous pouvez le vérifier par
 vous-même. Loguez-vous en tant que vous-même, c'est-à-dire <em>PAS en
 root</em>.

<p>
<example>
whoami
</example>

<p>
Ceci pour vérifier que vous n'êtes pas root. Ensuite, entrer la
commande suivante:

<p>
<example>
rm /etc/resolv.conf
</example>

<p>
L'ordinateur devrait vous répondre <prgn>Permission denied</prgn>
<footnote><prgn>Permission
refusée</prgn></footnote>. <prgn>/etc/resol.conf</prgn> est un des
fichiers essentiels de configuration du système. Vous n'êtes pas
autorisé à le modifier ou l'effacer si vous n'êtes pas root. Cela
préserve le système d'une maladresse accidentelle. Si l'ordinateur est
dans un organisme public, comme dans un bureau ou une école, cela le
préserve des utilisateurs travaillant dessus.

<p>
Maintenant, tapez <prgn>ls -l /etc/resolv.conf</prgn>.

<p>
Cela devrait vous renvoyer quelque chose comme cela:

<p>
<example>
-rw-r--r-- 1 root root 119 Feb 23 1997 /etc/resolv.conf
</example>

<p>
L'option <prgn>-l</prgn> de <prgn>ls</prgn> lui demande d'ajouter des
informations additionnelles. Les informations sur la partie droite
sont faciles à interpréter. La taille du fichier fait 119 octets. La
date de dernière modification est le 23 février 1997 et le nom du
fichier est <prgn>/etc/resolv.conf</prgn>. Sur la partie gauche de
l'écran, les choses sont un tout petit peu plus compliquées.

<p>
Tout d'abord, une brève explication technique: <prgn>-rw-r--r--</prgn>
est le <em>mode</em> du fichier, le <prgn>1</prgn> correspond au
nombre de liens physiques vers ce fichier (ou le nombre de fichiers
dans le répertoire) et les deux <prgn>root</prgn> sont les
propriétaires respectifs du fichier et du groupe auquel appartient le
fichier.

<p>
Tout ceci est du charabia. Étudions les choses plus calmement.

<sect1> Les droits de propriété d'un fichier

<p>
Tous les fichiers ont deux <em>propriétaires</em>: un utilisateur et
un groupe. Le cas précédent peut porter à confusion car il y a un
groupe nommé <em>root</em> et en même temps un utilisateur nommé
<em>root</em>. Les groupes sont juste un rassemblement d'utilisateurs
à qui on donne collectivement le droit d'accèder à une partie du
système. Un bon exemple est le groupe <em>games</em>. Vous pouvez
créer un groupe <em>games</em> sur votre ordinateur et le paramétrer
de façon à ce que seuls les gens appartenant à ce groupe aient
l'autorisation de jouer sur la machine.

<p>
Il y a des exemples plus pratiques: considérons le cas de la
configuration d'une machine pour une école. Il y a certains fichiers
dont vous voulez restreindre l'accès aux professeurs seulement, et pas
aux élèves. Vous créez donc un groupe dans lequel vous rassemblez tous
les professeurs. Ensuite, vous pouvez indiquer au système que certains
fichiers appartiennent au groupe <em>professeurs</em> et que personne
d'autre n'y a accès.

<p>
Explorons les groupes du système. En premier lieu, vous pouvez
utiliser la commande <prgn>groups</prgn> du shell. Cela vous fournit
une liste de groupes auxquels vous appartenez:

<p>
<example>
$ groups 
system-wide configuration!permissions!file
ownershipusername dialout: cdrom floppy audio
</example>

<p>
Vous semblez donc n'appartenir qu'à un groupe, qui est identique à
votre nom d'utilisateur. Dans tous les cas, root peut vous ajouter
dans d'autres groupes. L'exemple suivant montre une personne membre de
cinq groupes:

<p>
<example>
less /etc/group
</example>

<p>
Ce fichier contient la liste des groupes disponibles sur votre
système. Remarquez bien le groupe root (le seul membre de ce groupe
est l'utilisateur root) et le groupe qui correspond à votre nom
d'utilisateur. Il y a aussi des groupes comme <em>dialout</em> (les
utilisateurs autorisés à lancer le modem) et <em>floppy</em> (les
utilisateurs qui ont accès au lecteur de disquette). Il est probable
que votre système ne soit pas configuré pour avoir l'usage de ces
groupes. Il est préférable que seul root ait accès au lecteur de
disquettes ou au modem pour le moment. Pour les détails en ce qui
concernent ce fichier, reportez-vous au <prgn>man group</prgn>.

<p>
<example>
ls -l /home
</example>

<p>
Cette commande vous montre que tous les répertoires utilisateurs sont
la propriété de leur utilisateur et de leur groupe personnel.

<p>
<em> Si vous venez d'installer Debian, vous êtes peut-être le seul
utilisateur. Vous pouvez ajouter d'autres utilisateur à l'aide de la
commande <prgn>adduser</prgn>.</em>
</sect1>

<sect1> Mode

<p>
En plus d'être la propriété d'un seul utilisateur et d'un seul groupe,
chaque fichier et répertoire possède aussi un mode qui détermine qui a
le droit de lire, d'écrire et d'exécuter un fichier (et de le lancer
s'il s'agit d'un programme). Il y a d'autre petites fonctionnalités
apportées par le mode mais ce sont des réglages avancées et nous les
laisserons de côté pour le moment.

<p>
Un mode ressemble à cette sortie de <prgn>ls</prgn>:
<prgn>-rw-r--r--</prgn>. À partir de maintenant, nous allons découvrir
neuf ensembles: celui qui contrôle les permissions de
<em>lecture</em>, d'<em>écriture</em> et d'<em>exécution</em> pour le
propriétaire du fichier, pour le groupe auquel se rattache le fichier
et pour les autres personnes (<em>others</em>) (tous ceux du système,
quelque fois appelé le <em>monde</em>).

<p>
Dans la ligne mode, le premier « élément » donne le type de
fichier. Le - signifie que c'est un fichier normal (<em>regular
file</em>). Si nous avions eu <prgn>d</prgn>, cela aurait été un
répertoire<footnote><prgn>d</prgn> pour <em>directory</em> en
anglais</footnote>. Il y a aussi quelques autres possibilités mais qui
sont trop complexes pour le cadre de cette partie. Pour plus détails,
allez voir la partie 15.2.2.

<p>
Les neuf éléments restant sont utilisés pour définir le mode du
fichier. Les neuf bits basics (<em><prgn>r</prgn>ead,
<prgn>w</prgn>rite</em> et <em>e<prgn>x</prgn>ecute</em> pour
l'utilisateur, le groupe et les autres) sont définis en trois blocs de
<prgn>rxw</prgn>.

<p>
Si toutes les permissions sont activées et qu'il s'agit d'un fichier
normal, le mode va ressembler à ceci:

<example>
-rxwrxwrxw
</example>

<p>
Si c'était un répertoire avec toutes les permissions désactivées pour
le monde et activées pour tous les utilisateurs et le groupe, cela
ressemblerait à:

<example>
drxwrxw---
</example>

<p>
Le tableau suivant indique la signification des permission de lecture,
écriture et exécution pour les fichiers et les répertoires:

<p>
<example>
 ---------------------------------------------------------------
|   Code    |  Nom    | Ce que cela permet | Ce que cela permet |
|           |         | aux fichiers       | aux répertoires    |
 ---------------------------------------------------------------
|     r     | lecture |  Examen du contenu |   Liste le contenu |
|           |         |     du fichier     |    du répertoire   |
 ---------------------------------------------------------------
|           |         |    Modification    |Ajout ou descruction|
|     w     | écriture|     du fichier     | de fichiers dans le|
|           |         |                    |    répertoire      |
 ---------------------------------------------------------------
|     x     |exécution| lancer en tant que |Accéder aux fichiers|
|           |         |   commande         | du répertoire      |
 ---------------------------------------------------------------
</example>

<p>
Les modes du répertoire peuvent porter un peu à confusion donc voici
une série d'exemples des effets de combinaisons diverses.

<p>
<example>
r--
</example>

<p>
L'utilisateur, le groupe et les autres avec ces permissions peuvent
afficher le contenu du répertoire mais ne peuvent rien faire
d'autre. Les fichiers contenus dans ce répertoire ne peuvent être lus,
modifiés ou manipulés de quelle que façon que ce soit. La seule action
autorisée consiste à lire le répertoire en lui-même ce qui revient à
afficher ce qu'il contient et donc la liste des fichiers.

<p>
<example>
rw-
</example>

<p>
La permission d'écriture n'a pas d'effet en l'absence de celle
d'exécution donc ce mode se comporte exactement comme le mode
précédent.

<p>
<example>
r-x
</example>
<p>

<p>
Ce mode permet aux fichiers présents dans le répertoire d'être
visibles et permet aussi d'accéder à ces fichiers. Dans tous les cas,
les fichiers ne peuvent être créés ou détruits. <em>Accéder</em>
signifie que vous pouvez voir, changer et exécuter les fichiers
suivant leurs permissions respectives.

<p>
<example>
--x
</example>

<p>
Les fichiers de ce répertoire sont accessibles mais le contenu du
répertoire ne l'est pas. Il vous faut donc connaître à l'avance le nom
du fichier que vous recherchez (à moins d'avoir des talents de
devin). Les fichiers ne peuvent être ni créés ni détruits.

<p>
<example>
rwx
</example>

<p>
Vous pouvez faire tout ce que vous voulez avec les fichiers de ce
répertoire tant que vous respectez leurs permissions respectives.

<p>
Les permissions d'écriture d'un répertoire détermine si vous pouvez
détruire des fichiers dans ce répertoire. Un fichier en lecture seule
pourra être effacé si vous avez les permissions d'écriture dans le
répertoire le contenant. Vous ne pouvez détruire un fichier d'un
répertoire en lecture seule même si vous avez les droits d'écriture
sur le fichier.

<p>
Cela signifie que si vous êtes le propriétaire d'un répertoire, vous
pouvez toujours détruire un de ses fichiers, y compris si ce fichier
appartient à root.

<p>
La permission d'exécution d'un répertoire détermine la possibilité
d'avoir accès aux fichiers - si bien-sûr leurs permissions respectives
l'autorisent. Si vous avez le droit d'exécution d'un répertoire, les
droits d'exécution de ses fichiers devraient suivre. Sinon, les
permissions des fichiers ne servent à rien: vous y avez accès dans
tous les cas.
</sect1>

<sect1> Les permissions en pratique

<p>
Cette partie contient une série d'exemples pour montrer comment
utiliser les permissions. Pour changer les permissions, on utilise la
commande <prgn>chmod</prgn>.

<p>
<example>
cd ; touch monfichier
</example>

<p>
Il y a une série de nouveaux trucs ici. En premier, vous pouvez
utiliser <prgn>;</prgn> pour mettre deux commandes sur la même
ligne. Vous pouvez entrer la commande précédente comme suit:

<p>
<example>
$ cd
$ touch monfichier
</example>

<p>
ce qui revient au même que

<p>
<example>
$ cd; touch monfichier
</example>

<p>
Les deux méthodes conduisent au même résultat.

<p>
Rappelez-vous que <prgn>cd</prgn> employé seul vous renvoie dans votre
répertoire personnel. <prgn>touch</prgn> est normalement utilisé pour
modifier la date de création d'un fichier à la date courante. Mais
cela a une autre fonctionnalité intéressante. Si le fichier n'existe
pas, <prgn>touch</prgn> le crée. Ainsi, vous êtes en train de créer un
fichier pour pouvoir faire des expérimentations dessus. Utilisez
<prgn>ls -l</prgn> pour observer que le fichier a bien été créé et
remarquez son mode de permission:

<p>
<example>
$ ls -l
-rw-r--r-- 1 user user 0 Nov 18 22:04 monfichier
</example>

<p>
Bien-sûr, la date et le nom du groupe et de l'utilisateur seront
différents chez vous. La taille du fichier est <prgn>0</prgn> car
<prgn>touch</prgn> a créé un fichier vide. <prgn>-rw-r--r--</prgn> est
le mode de permission par défaut sous Debian.

<p>
<example>
chmod u+x monfichier
</example>

<p>
Cette commande <em>ajoute</em> (<prgn>+</prgn>) des permissions
d'<em>exécution</em> (<prgn>x</prgn>) pour l'<em>utilisateur</em>
(<prgn>u</prgn>) à qui appartient le fichier. Utilisez <prgn>ls
-l</prgn> pour en voir les effets.

<p>
<example>
chmod go-r monfichier
</example>

<p>
Maintenant, vous <em>ôtez</em> (<prgn>-</prgn>) les permissions de
<em>lecture</em> (<prgn>r</prgn>) au <em>groupe</em> (<prgn>g</prgn>)
à qui appartient le fichier et à tous les <em>autres</em>
(<prgn>o</prgn>). À nouveau, utilisez <prgn>ls -l</prgn> pour voir les
modifications.

<p>
<example>
chmod ugo=rx monfichier
</example>

<p>
Ici, vous positionnez (<prgn>=</prgn>) les permissions de lecture et
d'exécution pour l'utilisateur, le groupe et les autres. Cela
positionne les permissions exactement comme vous l'avez spécifié et
enlève les autres permissions. Ainsi, seules les permissions
<prgn>rx</prgn> seront activées, et toutes les permissions
<prgn>w</prgn> seront retirées. À partir de maintenant, personne ne
peut modifier le fichier.

<p>
<example>
chmod a-x monfichier
</example>

<p>
est un raccourci<footnote><prgn>a</prgn> est pour <em>all</em> (tous)
en anglais.</footnote> pour <prgn>ugo</prgn>. Ainsi, seules les
permissions d'exécution vont être retirées.

<p>
<example>
rm monfichier
</example>

Avec cette commande, nous allons tenter de détruire le fichier mais
sans les droits d'écriture. <prgn>rm</prgn> va alors s'assurer de
votre certitude en affichant le message suivant<footnote><prgn>rm:
détruire le fichier protégé en écriture
`monfichier'?</prgn></footnote>:

<p>
<example>
rm: remove 'monfichier', overriding mode 0444 ?
</example>

<p>
Vous devrez répondre en tapant <prgn>y</prgn> et ensuite en appuyant
sur <prgn>Entrée</prgn>. Ceci est une fonctionnalité de
<prgn>rm</prgn> et non une conséquence des permissions. L'autorisation
de détruire un fichier vient des droits sur le répertoire et vous avez
les droits sur ce répertoire. Dans ce cas, <prgn>rm</prgn> essaie
d'être le plus convivial possible en se figurant que si vous ne
vouliez pas changer les permissions (et <em>a fortiori</em> enlever
les droits d'écriture), vous ne vouliez pas plus le détruire et ainsi
il vous demande de faire le choix.

<p>
Qu'est-ce donc cette affaire <prgn>0444</prgn> dans la question de
<prgn>rm</prgn> ? Les modes de permission sont en fait un nombre de 12
bits comme celui-ci: <prgn>000100100100</prgn>. <prgn>0444</prgn> est
représentation octal (i-e en base 8) qui est la base conventionnelle
pour écrire un mode. Ainsi, vous pouvez écrire <prgn>chmod 444
monfichier</prgn> à la place de <prgn>chmod ugo=r monfichier</prgn>.
</sect1>
</sect>

<sect> Présentation des fichiers et de leurs emplacements

<p>
Maintenant que vous êtes capable de naviguer au gré des répertoires,
allons faire un tour auprès des fichiers et des répertoires que vous
avez créés en installant Debian. Si vous êtes curieux, faîtes un
<prgn>cd</prgn> dans chacun d'entre eux et tapez <prgn>ls</prgn> pour
voir leur contenu. Si le résultat ne tient pas dans l'écran, essayez
<prgn>ls | less</prgn> où | est le caractère <em>tube</em> que l'on
trouve généralement au même emplacement que la touche <em>retour
arrière</em><footnote>NDT: du moins chez nos voisins anglo-saxons. Les
francophones, avec des claviers <em>azerty</em>, le trouverons à la
touche 6 en faisant <em>Alt Gr - 6</em>.</footnote>.

<p>
<list>
<item> <prgn>/</prgn>
<p>
  Comme on l'a déjà mentionné, il s'agit du répertoire racine qui
  contient tous les autres répertoires.
<item> <prgn>/root</prgn>
<p>
  Attention, ne confondez pas <prgn>/</prgn> avec <prgn>/root</prgn> ! 
  <prgn>/root</prgn> est le répertoire personnel de l'utilisateur root
  (super-utilisateur). C'est un répertoire appellé <prgn>/root</prgn>
  mais ce n'est pas le répertoire racine (NDT: <em>root directory</em>
  en anglais d'où la confusion chez nos voisins anglophones).
<item><prgn>/home</prgn>
<p>
  C'est l'endroit où l'on place le répertoire personnel de tous les
  utilisteurs normaux - c'est-à-dire tous sauf le root. Chaque
  répertoire personnel est appelé du nom de l'utilisateur; par exemple
  <prgn>/home/jane</prgn>. Si vous utilisez un système de taille
  conséquente, comme pour une école ou une entreprise, votre
  administrateur système a peut-être créé des répertoires
  supplémentaires pour contenir les répertoires personnels:
  <prgn>/home1</prgn> et <prgn>/home2</prgn> par exemple. Dans
  d'autres systèmes, on peut apercevoir un niveau supplémentaire de
  sous-répertoire : 
<example>
  /home/eleves/nomdutilisateur, 
  /home/equipe/nomdutilisateur, etc...
</example>
</list>

<p>
Votre répertoire personnel est l'endroit où vous placez vos travaux
personnels, votre courrier électronique et tous les autres documents,
ainsi que vos fichiers de configurations personnelles. C'est votre «
chez vous » dans le système...

<p>
<list>
<item> <prgn>/bin</prgn>
<p>
  Ce répertoire contient les « binaires » et les fichiers exécutables
  indispensables au fonctionnement du système. Des exemples sont le
  shell (<prgn>bash</prgn>) et les commandes relatives aux fichiers
  comme <prgn>cp</prgn>.
<item> <prgn>/sbin</prgn>
<p>
  Ce répertoire contient les « binaires systèmes ». Ce sont les
  utilitaires que l'utilisateur root ou l'administrateur système
  auront à utiliser. Vous n'aurez probablement jamais à y avoir accès
  dans votre travail quotidien.
<item> <prgn>/usr</prgn>
<p>
  Ce répertoire contient beaucoup de fichiers susceptibles de vous
  intéresser. Il a de nombreux sous-répertoires. <prgn>/usr/bin</prgn>
  et <prgn>/usr/sbin</prgn> sont très proches de <prgn>/bin</prgn> et
  <prgn>/sbin</prgn> à l'exception près que les fichiers y figurant ne
  sont pas considéres comme « vitaux pour le système ».
<p>
  Bien que non essentiel au bon fonctionnement de l'ordinateur,
  <prgn>/usr</prgn> contient bien des applications très utiles pour
  travailler. Ainsi, dans <prgn>/usr</prgn>, vous trouverez les
  répertoires <prgn>/usr/man</prgn>, <prgn>/usr/doc</prgn> et
  <prgn>/usr/info</prgn>. Ils contiennent respectivement les pages de
  manuel, la documentation et les pages info. Et n'oubliez pas non
  plus <prgn>/usr/games</prgn> !
<item> <prgn>/usr/local</prgn>
<p>
  Le système Debian n'installe rien dans ce répertoire. Vous devrez
  l'utiliser pour installer des logiciels que vous compilerez vous
  même ou tout logiciel non contenu dans un paquet Debian. Vous pouvez
  aussi l'installer dans votre répertoire personnel si vous êtes le
  seul à l'utiliser.
<item> <prgn>/etc</prgn>
<p>
  Ce répertoire contient l'ensemble des fichiers de configuration du
  système. Lorsque vous désirez changer quelque chose au système qui
  impacte tous les utilisateurs de votre ordinateur - comme votre
  connexion internet ou bien un changement de carte vidéo - vous aurez
  probalement à vous loguer en root et à modifier un fichier dans
  <prgn>/etc</prgn>.
<item><prgn>/tmp</prgn>
<p>
  Vous trouverez ici les fichiers temporaires de votre système, la
  plupart d'entre eux créés par le système. Ce répertoire est
  généralement nettoyé régulièrement ou à chaque <em>boot</em> du
  système. Vous pouvez créer des fichiers ici mais gardez à l'esprit
  qu'ils peuvent être détruits automatiquement.
<item> <prgn>/var</prgn>
<p>
  Ce répertoire contient les fichiers « variables » que le système
  change automatiquement. Par exemple, les courriels entrants sont
  stockés ici. Le système garde une trace de ses actions ici. Il y a
  un grand nombre d'autres fichiers engendrés automatiquement
  ici. Vous pouvez prêter attention au contenu du répertoire de
  <prgn>/var/log</prgn> où vous pourrez trouver des messages d'erreurs
  qui peuvent vous aider à comprendre ce qui ne va pas dans votre
  système en cas de défaillance.
</list>

<p>
Il y a évidemment bien d'autres répertoires dans votre système, bien
trop d'ailleurs pour que l'on puisse tous les décrire ici.

<p>
Pour changer quelque chose, vous aurez certainement à vous contenter
de votre répertoire personnel et de <prgn>/etc</prgn>. Sur un système
Debian, il y a rarement une occasion de changer quelque chose d'autre
car tout est automatiquement installé pour vous.

<p>
<prgn>/etc</prgn> est utilisé pour configurer le système comme un
tout. Vous n'utiliserez votre propre répertoire personnel que pour
configurer votre propre environnement et stocker vos propres
données. L'idée de base est de vous confiner dans
<prgn>/home/votrenom</prgn> pour le travail quotidien et ainsi, vous
ne pourrez rien casser ailleurs. À l'occasion, vous vous loguerez en
tant que root pour paramétrer quelque chose mais seulement si c'est
absolument nécessaire. Bien-sûr, si vous utilisez Debian à l'école ou
bien en entreprise et que quelqu'un d'autre est l'administrateur
système, vous n'aurez pas accès au compte root et vous ne pourrez
changer des choses que dans votre compte personnel (ou dans les
comptes où vous avez accès). Ceci limite ce que vous pouvez faire avec
le système.
</sect>

<sect> La compression de fichier avec <prgn>gzip</prgn>

<p>
Il est souvent bien pratique de réduire la taille d'un fichier -
disons, pour le télécharger plus rapidement, ou bien pour gagner de la
place sur votre disque dur. Le programme affecté à cette tâche est
<prgn>gzip</prgn> (GNU zip). Voici comment il fonctionne:

<p>
<example>
$ cd; cp /etc/profile ./monfichier
</example>

<p>
Cela vous renvoie dans votre répertoire personnel et copie un fichier
arbitrairement choisi (<prgn>/etc/profile</prgn>) dans votre
répertoire courant en le renommant <prgn>monfichier</prgn>.

<p>
<example>
$ ls -l
</example>

<p>
Affiche le contenu du répertoire courant. Remarquez bien la taille de
<prgn>monfichier</prgn>.

<p>
<example>
$ gzip monfichier
</example>

<p>
Ceci comprime <prgn>monfichier</prgn>.

<p>
<example>
$ ls -l
</example>

<p>
Observez le résultat de cette commande: <prgn>monfichier</prgn>
s'appelle maintenant <prgn>monfichier.gz</prgn>. Il est aussi beaucoup
plus petit.

<p>
<example>
$ gunzip monfichier.gz; ls -l
</example>

<p>
Ceci décomprime le fichier. Remarquez bien que <prgn>monfichier</prgn>
est retourné dans son état d'origine. Et remarquez aussi que pour
décomprimer, il faut utiliser <prgn>gunzip</prgn> et non
<prgn>gzip</prgn>.

<p>
<example>
$ rm monfichier
</example>

<p>
Utilisez cette commande pour effacer le fichier puisqu'on ne l'avait créé
juste que pour expérimenter.
</sect>

<sect> Rechercher des fichiers

<p>
Il y a deux utilitaires pour rechercher un fichier: <prgn>find</prgn>
et <prgn>locate</prgn>. <prgn>find</prgn> recherche vraiment les
fichiers dans leur état présent. <prgn>locate</prgn> recherche dans un
index engendré automatiquement par le système chaque matin à 6h42
(c'est un <prgn>cron</prgn> dont on trouvera une explication un peu
plus loin dans le livre). <prgn>locate</prgn> ne sera jamais capable
de trouver un fichier créé après la génération de l'index. Bien-sûr,
puisque <prgn>locate</prgn> recherche dans un index, il est beaucoup
plus rapide - un peu comme rechercher dans l'index d'un livre plutôt
qu'effeuiller chaque page.

<p>
Pour comparer les deux façons de faire une recherche, on va supposer
que l'on ne se rappelle plus où est le fichier de configuration
<prgn>XF86Config</prgn> du serveur X.

<p>
<example>
$ locate XF86Config
</example>

<p>
Cela devrait être très rapide. Vous allez obtenir une liste de noms de
fichier <em>contenant</em> <prgn>XF86Config</prgn>, quelque chose
comme:

<p>
<example>
/etc/X11/XF86Config
/usr/X11R6/lib/X11/XF86Config
/usr/X11R6/lib/X11/XF86Config.eg
/usr/X11R6/man/man5/XF86Config.5x.gz
</example>

<p>
Maintenant, essayez la commande <prgn>find</prgn>:

<p>
<example>
$ find / -name XF86Config
</example>

<p>
Vous allez entendre une activité intense du disque dur, et cela va
prendre un temps assez long. Le résultat devrait ressembler à:

<p>
<example>
/ect/X11/XF86Config
/usr/X11R6:lib/X11/XF86Config
find: /var/spool/cron/atjobs: Permission denied
find: /var/spool/cron/atspool: Permission denied
find: /var/lib/xdm/authdir: Permission denied
</example>

<p>
Remarquez que <prgn>find</prgn> n'a trouvé que les fichiers appelés
<em>exactement</em> <prgn>XF86Config</prgn> et non pas ceux contenant
cette chaîne de caractères. <prgn>find</prgn> a aussi essayé de
rechercher dans tous les répertoires du système - y compris ceux dont
vous n'avez pas les droits d'accès. C'est la raison pour laquelle vous
avez les messages <prgn>Permission denied</prgn> (<prgn>Permission non
accordée</prgn>).

<p>
Leur syntaxe aussi est différente. Avec <prgn>find</prgn>, vous devez
choisir à partir de quel répertoire effectuer la recherche alors que
<prgn>locate</prgn> choisit automatiquement le répertoire racine. Et
vous devez spécifiez votre recherche en utilisant l'option
<prgn>-name</prgn>. Vous pouvez aussi rechercher des fichiers avec des
tas d'autres critères, comme les dates de modification ou les
propriétaires. Pour utiliser <prgn>find</prgn> dans une recherche de
fichiers dont le nom contient <prgn>XF86Config</prgn>, il vous faut
utiliser un motif de recherche:

<p>
<example>
$ find / -name '*XF86Config*'
</example>

<p>
Comme la plupart des outils en lignes de commandes, <prgn>find</prgn>
accepte des motifs comme arguments.

<p>
De façon générale, <prgn>find</prgn> est un outil beaucoup plus
puissant et <prgn>locate</prgn> est un outil très rapide pour des
recherches journalières. L'intégralité des recherches possible
prendrait un temps fou à expliquer. Pour plus de détails, tapez
<prgn>info find</prgn> qui vous conduira au travers des méandres des
subtilités de <prgn>find</prgn> et <prgn>locate</prgn>.
</sect>

<sect> Déterminer le contenu d'un fichier

<p>
Debian vous offre un utilitaire capable de deviner le contenu d'un
fichier à votre place. Bien que cela ne soit pas à 100% sûr, vous
pouvez utiliser cette commande pour explorer votre système.

<p>
<example>
$ file /bin/cp
</example>

<p>
Vous devriez avoir quelque chose comme ceci:

<p>
<example>
/bin/cp: ELF 32-bit LSB executable, Intel 80386, version 1, dynamically linked (uses shared libs), stripped
</example>

<p>
Si l'on retire les parties techniques, on peut dire que c'est un
fichier exécutable pour machine Intel.

<p>
<example>
$ file /etc/init.d/boot
</example>

<p>
La commande précédente vous donne la réponse suivante:

<p>
<example>
/etc/init.d/boot: Bourne shell script text
</example>

<p>
ce qui veut dire que c'est un fichier texte contenant un script écrit
en Bourne shell.
</sect>

<sect> Utiliser un gestionnaire de fichier

<p>
Plutôt que manipuler les fichiers à la main, vous pouvez utilisez un
<em>gestionnaire de fichiers</em>. Si vous manipulez de nombreux
fichiers à la fois, un gestionnaire de fichiers peut rendre votre
travail plus efficace.  Il y a des gestionnaires de fichiers orienté
texte, comme <prgn>GNU Midnight Commander (mc)</prgn> et un grand
nombre de gestionnaires de fichiers pour X-Window (par exemple
<prgn>gmc</prgn> qui est la version X-Window de <prgn>GNU Midnigt
Commander</prgn>).

<p>
Décrire chacun d'entre est hors du propos de ce livre mais vous pouvez
les essayer si la ligne de commande ne vous sied pas.
</sect>

</chapt>

-- 
      |\      _,,,---,,_       Patrice KARATCHENTZEFF  
ZZZzz /,`.-'`'    -.  ;-;;,_   mailto:pkarat@club-internet.fr 
     |,4-  ) )-,_. ,\ (  `'-'         p.karatchentzeff@free.fr
    '---''(_/--'  `-'\_)





Reply to: