INSIA – Linux Administateur

Travaux Pratiques












TP1 Installation d'une distribution

TP2 Prise en main du shell

TP3 Une image plus large du système de fichiers

TP4 Manipulation de fichiers

TP5 Prise en main de vi (visual interface)

TP6 Gestion des utilisateurs et des groupes














TP1 – Installation d'une distribution


L'objectif de ce TP est d'installer une distribution célèbre de Linux, Fedora Core version 6 de la société Red Hat, et de découvrir le partitionnement.

Nous n'allons pas ici détailler chaque étape d'installation. Nous vous laissons user de votre bon sens pour certaines.


1) Démarrez votre machine et insérez le DVD de Linux FEDORA 6. A l'écran de démarrage en mode texte avec le logo FEDORA, pressez entrée.


Quand on vous demande :

Test du media, choisissez Skip


2) L'installation graphique se lance, cliquez sur Next


Sélectionnez French puis next

Choisissez Français, latin1 puis next


3) A l'écran suivant, pour le partionnement, choisissez Effacer toutes les données : oui


Ensuite, Créer un partitionnement personnalisé puis suivant


4) Vous êtes maintenant dans l'outils de partionnement de Fedora (il s'agit d'un outil créé par Fedora, mais tous les outils de partionnement graphiques sont assez similaires). Cet outil est très intuitif, agréable à utiliser et vos modifications ne sont pas pris en compte avant la dernière étape d'installation. Vous pouvez donc créer des partitions, les supprimer, les modifier, etc.


Supprimez toutes les partitions existantes. Pour cela, sélectionnez les et cliquez sur supprimer.


5) Pour créer une partition, cliquez sur nouveau. Une fenêtre (ajouter une partition) apparaît. Vous y définissez entre autres :

- le point de montage (quel est le répertoire d'accès de votre partition)

- le Type de systèmes de fichiers

- la Taille de la partition (attention : en Mo)


Si vous vous êtes trompés dans une partition, vous pouvez la sélectionner dans la table de partition et cliquer sur Editer ou Supprimer.


Créez 2 parttions :


Notez ici le nom des 2 partitions :


Vous pouvez constatez qu'il reste encore beaucoup d'espace libre, que nous allons utiliser dans la suite du TP.


6) Quand vous êtes sûr de votre table de partitions, cliquez sur suivant.


7) Pour le chargeur de démarrage (GRUB), laissez les options par défaut et cliquez sur suivant


Pour les interfaces réseau, laissez DHCP et cliquez sur suivant


8) Mot de passe pour l'administrateur : root123


9) Fedora vous permet de choisir plusieurs types d'installation. Votre machine peut être orientée pour s'utiliser comme un serveur ou comme un poste de travail. Les différents logiciels correspondants seront installés automatiquement.

Pour le type d'installation, désélectionnez tous les composants :


10) Dans ce type d'installation, Fedora vous met des paquetages par défaut. Vous pouvez choisir de personnaliser en cliquant sur :

- personnaliser maintenant puis cliquez sur suivant


11) Vous voyez ainsi le détail des logiciels installés ou pas par Fedora.


Dans environnement de bureau, cochez également KDE (en plus de Gnome).


Dans Applications, cochez :


Dans Serveurs, cochez :


ATTENTION : à ce stade, appelez l'instructeur pour qu'il vérifie votre configuration.


Pour le reste, laissez comme tel (il sera possible d'y revenir une fois Linux installé).


L'installation va ensuite formater et partitionner le disque, puis redémarrer.


12) Au redémarrage, une interface de démarrage pour la première utilisation est lancée. Créez un nouvel utilisateur guest en fonction de votre nom d'utilisateur (guest1, guest2, etc.), avec comme mot de passe pass123


13) A l'invite de connexion graphique, vous devez entrez un nom d'utilisateur et un mot de passe. Vous avez également la possibilité devchoisir l'interface graphique que vous désirez (KDE ou GNOME) en cliquant sur Session en bas à gauche.


Connectez-vous en guest et admirez l'interface graphique personnalisée par Fedora.


Si vous avez lancé GNOME, notez que la barre de tâche se trouve en haut de l'écran.


14) Lancez un terminal. Il s'agit de ligne de commande en mode texte, pour donner des ordres au système d'exploitation.



TP2 - Prise en main du shell


Nous allons maintenant nous connecter au shell pour pouvoir contrôler Linux.


L'interface graphique est lancée, mais il y a 6 autres terminaux en mode texte qui attendent la connexion d'un utilisateur. Un terminal peut également s'appeler une console.


Ces consoles sont numérotées tty1 à tty6 et sont accessibles en appuyant sur les touches CTRL-ALT-F1 à F6.


La console graphique, quant à elle, est accessible en appuyant sur CTRL-ALT-F7.


1) Connectez-vous à la console virtuelle tty1 en utilisateur root / password root123


2) Connectez-vous au tty2 en utilisateur guest1 / password pass123


3) Retournez sur le tty1 et tapez la commande pwd


La commande pwd vient de l'anglais 'print working directory' (littéralement "impression du répertoire de travail"). En entrant la commande pwd, vous demandez au système Linux d'indiquer votre emplacement actuel dans le disque. Le système vous répond en affichant le nom du répertoire dans lequel vous vous trouvez sur la fenêtre de terminal.


Lorsque votre système répond à des requêtes d'informations, sa réponse, appelée sortie standard, peut être imprimée dans la consoleou redirigée vers d'autres programmes ou périphériques de sortie comme des imprimantes.


Par exemple, tapez :

pwd > toto


Avez-vous vu un résultat ?


Affichons alors le contenu du fichier toto :

cat toto


A quoi sert la commande cat ?

Pour la savoir, consulter la page de manuel de la commande :

man cat


La commande man vous donne une description détaillée d'une commande, la façon de s'en servir, les différentes options. Les pages de man sont utilisées même par les utilisateurs les plus chevronnés, car Linux contient des milliers de commandes avec chacune des dizaines d'options. C'est pourquoi, man devrait devenir un réflexe !


cat permet d'afficher le contenu d'un fichier.


Le fichier toto contient le résultat de la commande pwd. Nous venons d'illustrer l'utilisation atomique du shell : chaque commande est un atome, un élément qu'on peut emboîter dans un autre élément.


Au fur et à mesure que vous naviguerez dans votre nouveau système Linux, vous constaterez que pwd est une commande très utile.


4) Il est facile de changer de répertoire courant


Pour changer de répertoire, utilisez la commande cd (change directory).


5) Chemin absolu ou relatif


Le chemin d'accès absolu indique le répertoire depuis le répertoire le plus élevé qu'on appelle racine (root) reconnaissable par le symbole / , et cela quelque soit votre répertoire courant.

Un chemin d'accès absolu commence donc toujours par /


Sous Windows, la racine est C:\ . Un chemin d'accès absolu est toujours noté par rapport à C:\


Par exemple : C:\program files\accessoires


Le chemin d'accès relatif est l'emplacement relatif d'un répertoire par rapport à votre répertoire courant. Un chemin relatif ne commence jamais par /


Sous Windows, si vous êtes dans C:\program files, et que vous voulez aller dans le répertoire accessoires, vous taperez cd accessoires et non pas cd C:\accessoires qui serait un répertoire à partir de la racine C:\


6) Allez à la racine de votre arborescence, tapez :

cd /


Affichez ensuite le contenu de ce répertoire :

ls


Vous affichez là les répertoires qui sont en haut de votre arborescence.


7) Allez dans /usr/bin :

cd /usr/bin


Vous avez tapé un chemin absolu, car vous avez indiqué l'emplacement total de votre répertoire destination à partir de la racine : il y a un / au début du chemin, c'est la racine /


Tapez pwd pour voir votre répertoire courant.


8) Tapez cd net

pwd


Dans quel répertoire êtes-vous ?


En tapant cd net, vous avez tapé un chemin relatif. Vous êtes entré dans un répertoire à partir de votre répertoire courant : il n'y a pas de / au début du chemin.


9) Retournez dans /usr/bin en tapant un chemin absolu comme à la question 7)

Puis :

cd /net

pwd


Dans quel répertoire êtes-vous ?


Vous n'êtes pas dans le répertoire /usr/bin/net ! En effet, en tapant cd /net, vous avez indiqué un chemin absolu à partir de la racine, c'est-à-dire le répertoire /net qui se trouve en haut de l'arborescence.


Voyez-vous maintenant la différence entre un chemin absolu et un chemin relatif ? C'est une notion fondamentale qu'il faut appréhender. Si vous avez des doutes, demandez des explications à votre instructeur.


10) Tapez :

cd /usr/bin/net


Si vous voulez aller dans le répertoire /usr/sbin (dans le répertoire supérieur), vous pourriez le chemin absolu, comme par exemple :

cd /usr/sbin


Mais cela est assez long, alors que le répertoire dans lequel vous voulez aller est juste au-dessus.


Pour cela, il est préférable de remonter d'un niveau en tapant :

cd ..


Selon vous, que désigne .. ?


.. signifie : répertoire supérieur.


Quand vous tapez :

cd ..

Vous dites en fait :

cd répértoire supérieur


C'est à dire : aller dans le répertoire supérieur.


Ainsi, pour retourner à la racine /, vous avez le choix :


Choisissez la méthode que vous voulez. Ensuite, promenez-vous un peu dans les répertoires avec les deux méthodes (absolu et relatif).


11) Dans quel cas utiliser un chemin absolu ou relatif ?

En général, on utilise un chemin absolu lorsqu'il s'agit d'aller dans un répértoire complètement différent.


Par exemple, tapez :

cd /var/log


Vous voulez maintenant aller dans /etc/sysconfig/network-scripts


Dans ce cas, vous n'allez pas taper cd .. puis cd .. puis cd etc puis cd sysconfig puis cd network-scripts


Essayez, en tapant à chaque fois pwd pour voir où vous êtes dans l'arborescence.


Vous constatez que c'est assez long. Retournez dans /var/log :

cd /var/log


Il est plutôt préférable d'indiquer le chemin total :

cd /etc/sysconfig/network-scripts


Vous arrivez directement dans le répertoire désiré !


12) Le chemin relatif est utilisé quand vous voulez vous déplacer dans un répertoire assez proche de votre répertoire courant.


Par exemple, vous êtes dans /etc/sysconfig/network-scripts

Pour aller dans /etc/sysconfig

Vous allez simplement tapez le chemin relatif .. plutôt que le chemin complet :

cd ..

au lieu de :

cd /etc/sysconfig


13) Vous pouvez empilez les chemins relatifs.

Par exemple, allez dans /etc/sysconfig/network-scripts


Vous voulez aller dans /etc

Vous pourriez taper :

cd ..

puis cd ..


MAIS

Il est possible de taper cd ../..


Essayez, et regardez où vous vous trouvez avec pwd.

Qu'est-ce que cela veut dire ?

Si vous ne comprenez pas, demandez à l'instructeur.


14) Répértoire utilisateur

Chaque utilisateur dispose d'un répertoire personnel.

Connectez-vous en tty2 à votre utilisateur guest

Dans quel répertoire vous trouvez-vous ?


15) Maintenant, en tty3, connectez-vous en root

Dans quel répertoire vous trouvez-vous ?


On constate que le répertoire personnel de root est /root

Tandis que les autres utilisateurs ont un répertoire personnel dans /home


16) Retournez en tty1. Tapez :

cd ~


Dans quel répertoire vous trouvez-vous ? (avec pwd)


En effet, ~ désigne le répertoire personnel de l'utilisateur en cours.


17) En fait, vous n'avez pas besoin de taper cd ~


Si vous tapez simplement :

cd


Le système vous ramène dans votre répertoire personnel.


Essayez en vous déplaçant dans un autre répertoire, puis retounez dans votre répertoire personnel.


~ désigne le répertoire personnel de l'utilisateur en cours.


C'est pourquoi, lorsqu'on indiquera un répertoire qui se trouve dans le répertoire de l'utilisateur, on utilisera cette notation :

~/repertoire_quelconque


Ce qui signifie, si vous êtes guest :

/home/guest/repertoire_quelconque


Par exemple, essayez d'aller dans le répertoire Desktop de votre répertoire personnel en utilisant le chemin simplifié ~


Déconnectez-vous des différents tty en tapant exit.


18) Différence entre root et un utilisateur


En tty2, connectez-vous en guest


Allez maintenant dans /root (le répertoire de l'utilisateur root)

Cela marche-t'il ? Quel est le message ?


Retournez dans le tty1 et connectez-vous en root.


Allez maintenant dans le répertoire de l'utilisateur guest1 /home/guest1

Cela marche-t'il ?

Quelle est la différence entre l'utilisateur root et l'utilisateur guest1 ?


L'utilisateur root est le super-utilisateur. C'est lui l'administrateur de la machine. Il a tous les droits et peut faire ce qu'il veut, y compris aller dans les répertoires des utilisateurs.

guest1 en revanche, n'est qu'un utilisateur avec des droits limités. Il ne peut sûrement pas aller dans le répertoire de l'administrateur root.


D'ailleurs, voyez-vous la différence dans le prompt (l'invite) entre guest1 et root ?

L'invite de root finit par # indiquant qu'il est le super-utilisateur tandis que l'invite de guest1 se termine par $ indiquant qu'il n'est qu'un humble utilisateur.


19) Création de répértoire :


Pour organiser nos fichiers, il est utile de créer des répertoires et des sous-répertoires.

Pour cela, nous utilisons la commande mkdir (make directory). Cette commande s'utilise comme cd en ce qui concerne les chemins relatifs et absolus.


Revenez en tty2 où l'utilisateur guest1 est connecté. Retournez dans le répertoire par défaut de guest1 en tapant :

cd

ou

cd ~


20) Pour créer un répertoire, utlisez mkdir comme suit :

mkdir répertoire


Le répertoire à créer peut être en chemin relatif ou absolu.


21) Vous pouvez supprimer un répertoire avec la commande :

rmdir répertoire

rmdir = remove directory


22) Créez les répertoires :

/home/guest1/rep1

/home/guest1/rep2

/home/guest1/rep1/sousrep1

/home/guest1/rep1/sousrep1/sousrep11

/home/guest1/rep2/sousrep2/sousrep22


Supprimez le répertoire sousrep2. Attention, un répertoire doit être vide pour être supprimé ! (il ne doit contenir aucun autre répertoire ou fichier)


Pour résumer :

ls Affichez le contenu d'un répertoire

pwd Affichez votre emplacement dans l'arborescence

cd Allez dans un répertoire

cd .. Sortir de votre répertoire courant

cd ~ Allez dans votre répertoire utilisateur

mkdir Créer un répertoire

rmdir Supprimer un répértoire

man commande

Affiche le manuel d'une commande

TP3 – Une image plus large du système de fichiers


cat Afficher le contenu d'un fichier

| Pipe : empiler des commandes les uns derrières les autres

more Affichage page par page



Chaque système d'exploitation a sa propre méthode d'enregistrement de données dans les fichiers et répertoires afin de pouvoir garder une trace des ajouts, des modifications ainsi que de tout autre changement.


Pour la compatibilité entre systèmes Linux provenant de distributions différentes, on a défini une manière standard d'organiser les fichiers et les répertoires du système d'exploitation. De la manière que sur un système Windows, on s'attend à voir le système d'exploitation dans un répertoire \Windows et ses sous-répertoires, de même le système d'exploitation Linux correspond à un standard.


Ce standard est le FHS : Filesystem Hierarchy Standard

Ce standard est respecté par de nombreuses distributions, y compris Debian, Red Hat et Mandriva.


Ainsi, un programme s'exécutant sur une distribution s'exécutera facilement sur une autre distribution correspondant au même standard.


Dans Linux, chaque fichier est enregistré dans un répertoire qui peut lui-même contenir d'autres répertoires; ces sous-répertoires peuvent à leur tour comporter fichiers et sous-répertoires.


Vous pourriez comparer le système de fichiers à une structure arborescente dans laquelle les répertoires seraient les branches. Ces derniers peuvent comporter, ou être le 'parent', d'autres répertoires pouvant eux-mêmes contenir fichiers et répertoires. On les appelle sous-répertoires.


Il ne peut y avoir d'arbre sans racines (root) - cette image peut s'appliquer au système de fichiers Linux. Peu importe la distance des branches, tout est relié à la racine, représentée par une barre oblique. (/).


Note : la racine (root) du système de fichier ne doit pas être confondue avec l'utilisateur root


Nous allons ici explorer le système de fichiers Linux. Pour ce faire, nous utiliserons la commande ls


Pour l'instant, nous avons toujours utilisé ls "tout seul" pour afficher le contenu du répertoire courant.


Mais si vous tapez :

ls un_répertoire

Affiche le contenu du répertoire sans bouger de votre répertoire courant. On peut préciser le chemin du répertoire avec un chemin relatif ou absolu comme avec la commande cd.


1) Essayez ! Tapez :

ls /proc/sys/net


Vous voyez le contenu du répértoire /proc/sys/net mais vous êtes toujours dans votre répértoire courant, car vous n'avez pas tapé cd.


2) Il est utile de préciser ici que sous Linux comme sous Unix, tout est considéré comme fichier. On peut accéder à n'importe quel élément comme s'il s'agissait d'un fichier. Par exemple, les périphériques apparaissent sous la forme d'un fichier. Le fait d'envoyer ou de recevoir des informations dans ce type de fichier revient à envoyer ou recevoir des information du périphériques.


Rappelez-vous que vous pouvez connaître la nature d'un fichier avec la commande file


Le répertoire /dev

Le répertoire /dev contient des fichiers représentant des périphériques connectés au système. Ces fichiers sont essentiels au bon fonctionnement du système.


Vous pouvez constater que dans le répertoire /dev se trouve les fichiers tty. Ces fichiers correspondent aux terminaux tty sur lesquels nous sommes connectés.


3) Pour illustrer l'aspect « tout est fichier » de Linux, connectez-vous sur le tty1 en root et tapez :

echo BIDULE > /dev/tty4


Cette commande écrire un mot vers ( > ) dans le fichier /dev/tty4 qui est en fait un périphérique. On aurait pu tout aussi bien écrire ce mot dans un fichier classique, comme nous l'avons fait dans le TP2 question 3.


Allez maintenant sur le tty4. Que voyez-vous ?


4) Selon vous, à quoi sert le fichier /dev/urandom ?


Tapez plusieurs fois la commande suivante :


head -c 6 /dev/urandom | mimencode


Si la commande mimencode n'est pas disponible, demandez au formateur (mimencode est disponible dans les paquetages metamail / mailcap) ou tapez simplement la commande :

head -c 6 /dev/urandom


Alors, à quoi sert urandom ? Pour le découvrir, affichez la page de manuel de urandom.


Tapez également :

file /dev/urandom


/dev/urandom est-il un fichier physique ?


/dev/urandom est entre autres utilisé dans la génération de clés PGP, SSH, etc.


Nous reviendrons plus en détails sur /dev


5) Le répertoire /etc (editing text config)

Le répertoire /etc est réservé aux fichiers de configuration locaux sur votre ordinateur. Il contient de nombreux sous-répertoires répartis en catégories. Nous examinerons en détails ce répertoire et nous en servirons pour configurer le système.


N'hésitez pas à explorer les différents répertoires de /etc avec les commandes que vous connaissez déjà (pwd, cd, ls).


Par exemple, affichez le contenu de :


/etc/hosts

/etc/resolv.conf

/etc/init.d/

/etc/rc5.d/

/etc/passwd

/etc/fstab

/etc/inittab


6) Le répertoire /lib

Le répertoire /lib ne devrait contenir que les bibliothèques (libraries) nécessaires à l'exécution de programmes dans /bin et /sbin. Ces images de bibliothèques partagées sont particulièrement importantes pour le démarrage du système et l'exécution de commandes dans le système de fichiers racine.


Par exemple, les bibliothèques /lib/libgcc* sont nécessaires au programme gcc à la compilation de fichier source en C.


7) Le répertoire /mnt

Le répertoire /mnt se réfère aux systèmes de fichiers montés (mounted) de façon temporaire, tels que les CD-ROM et les disquettes.


Si nous voulons aller dans le CDROM, nous irons dans un sous-répertoire de /mnt (il faut taper une commande avant pour "monter" le CDROM)


8) Le répertoire /proc

Le répertoire /proc contient des "fichiers" spéciaux qui extraient des information à partir du noyau ou envoient des informations au noyau.


Il s'agit donc d'un pseudo-système de fichiers, les fichiers s'y trouvant étant virtuels.


Étant donné l'immense variété de données disponibles dans /proc et les différentes façons dont ce répertoire peut être utilisé pour communiquer avec le noyau, il est difficile de l'expliquer de manière exhaustive. On peut cependant illustrer à nouveau l'aspect « tout est fichier » de Linux en affichant le contenu d'un fichier dans /proc.


9) Par exemple, tapez

cat /proc/cpuinfo

La commande cat sert à afficher le contenu d'un fichier.


Vous avez affiché le contenu d'un fichier, n'est-ce pas ?


En réalité, vous avez accédé à un espace mémoire où est stocké le type de processeur.


10) A quoi correspondent les dizaines de répertoires numérotés dans /proc ? (répertoires /proc/1/, /proc/2/, /proc/26092/, etc.)


Pour le comprendre, tapez la commande qui permet d'afficher les processus en cours avec le n° de processus (PID) :

ps -e


11) a) Affichez le contenu des différents fichiers :


/proc/devices : Ce fichier contient la liste des pilotes des équipements configurés dans le système d'exploitation.

/proc/ioports : Ce fichier contient les adresses d'entrées/sorties utilisés par les périphériques en ce moment sur le système.

/proc/dma : Liste des canaux dma (Direct Memory Access) en cours d'utilisation.

/proc/filesystems : Liste des systèmes de fichiers supportés par le noyau actuel.

/proc/interrupts : Liste des interruptions (IRQ) utilisées par les périphériques.

/proc/modules : Liste des modules chargés par le système.

/proc/pci : Liste des périphériques PCI détectés lors du démarrage du noyau. Comparer avec la commande lspci.


Certains programmes viennent directement puiser dans les fichiers de /proc. Par exemple, le programme free pour connaître la mémoire libre ne fait rien d'incroyable. Il se contente d'afficher :

/proc/meminfo (l'unité utilisée est l'octet)


/proc/uptime : Ce fichier contient deux chiffres, le temps écoulé depuis le démarrage et le temps passé à ne rien faire (en seconde). Comparer avec la commande uptime

/proc/version : Ce fichier contient les informations sur la version du noyau en cours d'utilisation (comparer avec la commande uname -rv ou uname -a)


b) Modifier le contenu de certains fichiers dans /proc revient à modifier certains paramètres « physiques » du système d'exploitation.


Par exemple, on modifie souvent le fichier /proc/sys/net/ipv4/ipforward. Par défaut, le comportement de la machine est de ne pas relayer les paquets (le fichier contient la valeur 0).


Si vous modifiez le contenu de ce fichier à 1, la machine pourra relayer les paquets et faire office de routeur (attention, cette modification n'est pas une modification d'un fichier de configuration, elle est donc valable jusqu'au prochain reboot de la machine !)


12) Les répertoire /sbin et /bin

Le répertoire /sbin est conçu pour les fichiers exécutables qui ne sont utilisés que pour la gestion de l'OS. Les fichiers exécutables dans /sbin ne sont utilisés que pour démarrer et monter /usr et exécuter des opérations de remise en état du système.


Au minimum, les programmes suivants doivent être dans /sbin:

arp, clock, getty, halt, init, fdisk, fsck.*, grub, ifconfig, lilo, mkfs.*, mkswap, reboot, route, shutdown, swapoff, swapon, update


Certains de ces fichiers servent par exemple à démarrer ou éteindre l'OS ou à manipuler le disque dur.


Selon vous, quel utilisateur est autorisé à utiliser ces programmes ? Que signifie alors le s de sbin ?


Le répertoire /bin contient les exécutables du système : c'est-à-dire les binaires , ce que vous appeliez sous windows les "point éxé". Le dossier /bin est l'équivalent sous windows du fichier "program files", dans lequel vous trouviez tous vos logiciels.


Vous y trouverez aussi toutes les commandes de base du système, qui sont employées par les utilisateurs du système (ls, more, cat, cp, rm, chmod, grep, mkdir, mount, kill, tar, gnuzip...). Les utilitaires de ce répertoire sont compilés de façon dynamique, ce qui signifie que les bibliothèques contenant des phrases qu'ils utilisent doivent être installées sur le système. Enfin, sachez que les commandes contenues dans ce répertoire peuvent être employées par le simple utilisateur du système, c'est-à-dire, sans les droits root.


13) Le répertoire /var

Tous les programmes qui écrivent des fichiers journaux ou ont besoin de répertoires spool ou lock devraient probablement les écrire dans le répertoire /var. Le standard FHS indique que /var est pour les fichiers de données variables. Ceci comprend les répertoires et fichiers spool, les données administratives et de journalisation, de même que les fichiers transitoires et temporaires.


Par exemple, dans /var/log, on trouve les fichiers d'enregistrements d'évènements du système (logs).


14) Affiichez le contenu du fichier /var/log/messages avec la commande cat.


Que voyez-vous ?


15) Arrêtez le défilement en appuyant sur CTRL-C.

Si le fichier fait plus d'une page, la lecture est rendue difficile. Dans ce cas, on peut demander à la commande more d'afficher page par page.


cat /var/log/messages | more


Cette commande illustre à nouveau l'aspect atomique de Linux. On emboîte différentes commandes grâce au tube (pipe en anglais) |


Note : Le caractère | est accessible en appuyant sur ALT-GR+6


Grâce au pipe, la sortie d'une commande est redirigée vers l'entrée d'une autre commande. C'est comme si on avait mis un tube de la sortie de cat vers l'entrée de more, au lieu de laisser les messages provenant de cat aller vers la console (le terminal).


16) Que voyez-vous maintenant dans le fichier /var/log/messages ?


Ce fichier enregistre tous les évènements relatifs au système, comme la connexion d'un utilisateur, ou le montage d'un disque dur par exemple.

Vous y voyez l'heure de l'évènement, l'utilisateur responsable et le programme qui a généré l'évènement.


17) Le répertoire /home

Ce répertoire contient les répertoires personnels des utilisateurs.


Retrouvez le répertoire utilisateur de guest1


Connectez-vous en root et créez un utilisateur de nom quelconque en tapant :

adduser utilisateur


Voyez-vous son répértoire créé dans /home ?


18) Le répertoire root

Contient le répertoire du super-utilisateur root.


19) Le répertoire /boot


Comme son nom l'indique, il contient les fichiers de démarrage du système, le fameux "noyau linux" : vmlinuz


Affichez le contenu du répertoire /boot, qui contient peut-être plusieurs noyaux Linux :

ls -lh /boot


Quelle taille font ces noyaux ?


On y trouve aussi les fichiers du chargeur de démarrage Grub (le fichier de config de Grub est : /boot/grub/menu.lst). Nous y reviendrons après.



20) Le répertoire /tmp

Répertoire réservé à l'enregistrement temporaire des fichiers de tous les utilisateurs. Les fichiers qui y sont stockés ne sont pas permanents. Un processus système en supprime périodiquement les anciens fichiers. Par conséquent, n'y copiez aucun fichier ou répertoire que vous souhaitez conserver.


On trouve beaucoup d'autres répértoires dans la racine "/" mais nous examinerons certains d'entre eux plus en détail par la suite.


Résumé des répertoires :


/ le répertoire racine


TP4 – Manipulation de fichiers


Vous pouvez créer de nouveaux fichiers à l'aide d'applications (éditeurs de texte, par exemple) ou à l'aide de la commande touch, qui va créer un fichier vide que vous pourrez utiliser pour y ajouter du texte ou des données.


1) Tout d'abord, connectez-vous en guest et allez dans votre répertoire de travail.


2) Créez ensuite un répertoire TP dans votre répertoire de travail. Entrez ensuite dans ce répértoire.


3) Nous allons maintenant créer un fichier avec touch. Tapez ce qui suit à l'invite du shell.


touch testtouch


testtouch est le nom du fichier que nous venons de créer dans le répertoire TP.


4) Afficher maintenant le contenu du répertoire avec la commande ls


Voyez-vous votre fichier ?


5) L'option -l (tiret L) de ls permet d'afficher des informations plus complètes.


Faites un ls -l de votre répertoire TP. Quelle est la taille du fichier testtouch ?


6) Copie de fichiers


Comme pour de nombreuses fonctionnalités Linux, différentes options s'offrent à vous pour manipuler fichiers et répertoires. Lorsque vous copiez, déplacez ou effacez plusieurs fichiers et répertoires, vous pouvez également, afin d'accélérer le processus, utiliser des caractères génériques comme nous le verrons plus tard.


Pour copier un fichier, tapez la commande suivante:


cp <source> <destination>


Remplacez <source> par le nom du fichier que vous voulez copier et <destination> par le nom du répertoire dans lequel vous voulez le copier (en chemin relatif ou absolu).


Il est également possible de copier un répertoire dans un autre répertoire avec l'option -r.

cp -r <repertoire_source> <repertoire_destination>


-r signifie récursif, c'est-à-dire que tous les sous-répertoires contenus dans le répertoire source sont également copiés.


7) Créez un répertoire copie dans TP (chemin total /home/guest1/TP/copie)


En utilisant la commande cp, copier le fichier testtouch de TP dans TP/copie


Copiez également le répertoire copie dans /tmp

(/tmp est un répertoire temporaire, son contenu est effacé régulièrement)


8) Déplacement de fichiers


Pour déplacer des fichiers, utilisez la commande mv. Si vous souhaitez davantage d'informations sur mv, reportez-vous à la page du manuel relative à mv (en tapant man mv).


D'abord, créez un fichier TP/testmove (ce qui revient à dire : créez un fichier testmove dans le répertoire TP)


Maintenant, en utilisant la commande mv avec la syntaxe découverte dans la page de man, déplacez le fichier testmove dans copie.


Utilisons maintenant un caractère générique bien connu pour manipuler un grand nombre de fichiers. Il s'agit de l'étoile ( * ) qui remplace un ou plusieurs caractères.


Par exemple, test* remplace tous les noms commençant par test. Précisemment, ce sont les noms commençant par test, suivi de n'importe quels caractères de n'importe quelle taille.


Utilisez ce caractère générique pour déplacer les fichiers testtouch et testmove du répertoire copie vers le répertoire supérieur TP


Que se passe-t'il lorsque le fichier testtouch est déplacé vers le répertoire TP ? Pour quelle raison ?


9) Renommer un fichier


Vous pouvez déplacer un fichier dans le même répertoire en changeant son nom : cela revient tout simplement à le renommer !


Créez un fichier testrename avec touch. Ensuite tapez :

mv testrename testrenamed2


Le fichier a effectivement changé de nom.


En fait, vous pouvez également déplacer un fichier dans un autre répertoire en changeant son nom. Créez un répertoire moved. Ensuite, tapez :

mv testrenamed2 moved/testrenamed3


Le fichier a été déplacé dans le répertoire moved avec le nom testrenamed3.


10) Répertoire courant


Allez dans votre répertoire utilisateur.


Comment pouvez-vous faire pour bouger le fichier testtouch du sous-répertoire TP vers le répertoire courant ?


Vous pourriez par exemple taper la commande suivante :

mv TP/testtouch /home/guest1

Mais c'est un peu long, et la destination est précisée en chemin absolu. En l'occurence, il est plus pratique de taper un chemin relatif (pour éviter d'avoir à taper un chemin complet qui peut être très long). Mais comment faire ?


Pour préciser le répertoire courant, utiliser le .

. est le nom du répertoire courant.


Par exemple, tapez ls .


Vous affichez le répertoire courant (cela revient simplement à taper ls...)


Il est vrai que le . est très peu utilisé (même s'il est parfois nécessaire comme dans le cas que nous étudions)

Cependant, il fait partie des notions fondamentales à connaître.


Allez-y, essayez :

mv TP/testtouch .


Cette commande bouge le fichier testtouch (dans le répertoire relatif TP) vers le répertoire courant .


11) Suppression de fichiers


Vous avez appris à créer des fichiers à l'aide de la commande touch, à créer des répertoires à l'aide de mkdir, à copier et déplacer des fichiers avec cp et mv.


Il vous faut maintenant apprendre à supprimer des fichiers et répertoires. Pour ce faire, utilisez la commande rm qui est d'une utilisation simple. Consultez la page du manuel relative à rm pour obtenir davantage d'informations. Les options permettant de supprimer les fichiers et répertoires comprennent entre autres:


-f — force : Efface le(s) fichier(s) sans demander confirmation. Ne l'utilisez que si vous êtes sûr de vous !


-r — recursive. Efface un répertoire ainsi que tous les fichiers et sous-répertoires qu'il contient.


Attention !

La commande rm peut effacer tout votre système de fichiers ! Si vous êtes connecté en tant que root et que vous tapez la commande rm -rf /, vous risquez d'aller au devant de problèmes; cette commande effacera de façon récursive tout ce qui se trouve dans votre système.

A ne pas faire donc...


Essayez de comprendre comment fonctionne cette commande :

rm -rf /


12) Supprimer le fichier testtouch sans utiliser l'option -f


Vous constatez que le système vous demande confirmation.


13) Supprimez maintenant le fichier testmove avec l'option -f


Vous constatez que le système ne demande pas de confirmation de suppression. Cette option est donc à utiliser avec prudence.


14) Nous avons vu que pour supprimer un répertoire, il faut utiliser rmdir. Cette commande ne supprime qu'un répertoire vide. Si l'on veut supprimer un répertoire contenant des fichiers et d'autres répértoires, il faut utiliser :

rm -rf <répertoire>

Cela supprime le répertoire et son contenu (de manière récursive) sans demander confirmation (ce qui peut être long si l'on demande confirmation pour chaque fichier)


Comme vu ci-dessus, il faut utiliser ces options avec prudence.


Supprimer le répertoire TP dans votre répertoire utilisateur.


Affichez le contenu de votre répertoire utilisateur. Le répertoire TP existe-t'il toujours ?


Non ? C'EST NORMAL. :-)


Rappel

Créer un fichier vide

touch

Afficher le contenu détaillé du répertoire courant

ls -l

Afficher le contenu détaillé d'un autre répertoire

ls -l <répertoire>

Copier un fichier

cp <repertoire/fichier_source> <repertoire/fichier_destination>


Déplacer et renommer un fichier

mv <repertoire/fichier_source> <repertoire/fichier_destination>


Supprimer un fichier

rm <fichier>

Supprimer un fichier sans confirmation

rm -f <fichier>

Supprimer un répertoire

rm -r <répertoire>


. Désigne le répertoire courant

TP5 Prise en main de vi (visual interface)


Lisez d'abord le descriptif suivant de vi, ensuite répondez aux questions


vi (lisez "vi aïe" :-) ) est un éditeur de texte présent d'office sur la majorité des systèmes Unix actuels.


En ligne de commande, lancer vi : vi nom_de_fichier

Vous pouvez préciser un fichier existant ou un nouveau fichier. Vous pouvez également, comme dans n'importe quelle commande de manipulation de fichiers, préciser l'emplacement du fichier avec un chemin relatif ou absolu. 

Par exemple : vi /repertoire/nom_de_fichier


Vous avez deux modes : mode commande et mode insertion. Au démarrage, vous êtes dans le mode Commande.

 

Mode insertion

C'est simplement le mode où vous écrivez votre texte

En mode insertion, vous ne pouvez rien faire d'autre qu'écrire ou supprimer des caractères. Vous pouvez également vous déplacer dans le texte avec les flèches.


Mode Commande

Au démarrage de vi, vous êtes en mode Commande. A tout moment, pour retourner dans le mode Commande, appuyez sur Echap.


Comment entrer en mode Insertion ?

A partir du mode Commande, vous avez plusieurs moyens pour rentrer en mode Insertion :

i insérer des caractères

o ajouter une ligne après la ligne en cours

O ajouter une ligne avant la ligne en cours

r remplacer un seul caractère sous le curseur

A ajouter à la fin de la ligne

a ajouter des caractères après le caractère en cours

Echap revenir en mode Commande

 

C'est aussi dans le mode Commande que vous effectuez toutes les opérations en-dehors de l'édition : sauvegarder votre fichier, chercher une chaîne de caractère, éditer le fichier (supprimer des lignes ou des caractères), entrer en mode insertion, etc.

 

En mode commande, vous pouvez également vous déplacer dans le fichier avec les flèches ou les touches h j k l et les touches PageUp/PageDown

 

:17 puis entrée Se déplace à la ligne 17

:$ puis entrée Se déplacer à la fin du fichier ($ = dernière ligne)

:q puis entrée pour sortir de vi

:q! puis entrée pour sortir de vi sans sauvegarder

:wq puis entrée pour sortir en sauvegardant

:w toto puis entrée sauvegarde dans le fichier toto sans quitter

 

:s Substitution (expliqué en détails plus bas)

w Se déplacer au mot suivant (word)

/ Rechercher une chaîne de caractères : pressez / suivi de la chaîne de caractères, puis Entrée

n Pour aller à l'occurence suivante dans la recherche

N Pour aller à l'occurence précédente dans la recherche


x Supprimer un caractère : pressez x pour supprimer le caractère sous le curseur

dd Supprimer une ligne : pressez dd pour supprimer la ligne en cours

dw Supprimer de la position courante jusqu'à la fin du mot

d$ Supprimer de la position courante jusqu'à la fin de la ligne




yy Copier (yank) la ligne courante

p Coller (paste) la ligne qui se trouve dans le tampon après la ligne courante

P Coller la ligne qui se trouve dans le tampon avant la ligne courante


u Undo (annuler la dernière modification avec historique) 

CTRL-g Connaître le n° de la ligne courante (touche CONTROL + touche g)



1) Dans la suite du TP, nous allons apprendre un manipuler un fichier avec vi.

Connectez-vous en guest et créez un répertoire appelé textes dans votre répertoire utilisateur.


2) Copiez le fichier /etc/inittab dans le répertoire textes que vous venez de créer. Nous allons travailler sur cette copie de sauvegarde dans le répertoire textes.


Vous devriez donc avoir un fichier inittab dans le répertoire $HOME/textes


3) Ouvrez ce fichier inittab avec vi. Vous êtes en mode Commande. Pour l'instant, vous ne pouvez pas insérer de texte dans le fichier.


Déplacez-vous dans le fichier avec les flèches ou les touches h j k l et les touches PageUp/PageDown.


En vous aidant des commandes au dessus :


Il est possible de combiner certaines commandes avec des chiffres. Par exemple, toujours dans le mode commande (le mode de démarrage de vi), si vous tapez :

6x Supprime les 6 caractères après le caractère courant.

6dd Supprime les 6 lignes après la ligne courante



4) Nous allons maintenant insérer du texte. Allez n'importe où dans le texte et tapez i pour insérer le mot « bidule ». Au moment d'appuyez sur i, vous voyez le mot – INSERT – appraître en bas de l'écran.


Vous pouvez rester en mode insertion et vous déplacer dans le fichier, ou retourner dans le mode Commande en appuyant sur Echap.


# Ligne de test

# Deuxième ligne de test

# Ligne de test AVANT


5) Essayons de copier/coller du texte.


6) Procédons maintenant à de la substitution. Cela consiste à remplacer un motif par un autre motif.


:s/spawn/speed/ puis entrée

Cela remplace la première occurrence du mot « spawn » sur la ligne par le mot « speed ».


:5,10 s/motif1/motif2/g

:1,$ s/motif1/motif2/g


7) Sauvegardez le texte dans le fichier toto puis quittez

Affichez le contenu du répertoire et le contenu des fichiers que vous avez modifiés.


8) Indentation et Vérification de code


VI contient une fonctionnalité intéressante pour la vérification de code source ou script. Ouvrez un fichier de script quelconque dans /etc/init.d

Placez-vous sur une accolade ou un crochet.

Pressez %

vi cherche l'accolade ou le crochet correspondant. Cela est très utile pour vérifier l'intégrité de vos scripts


>> ajoute une tabulation en début de ligne

<< retire une tabulation en début de ligne


Cela permet de présenter un code clair et propre.

TP6 Gestion des utilisateurs et des groupes


1) Ajouter un utilisateur sous Linux consiste à créer un compte utilisateur. Nous pourrious ajouter les entrées qu'il faut dans les fichiers nécessaires (/etc/passwd, /etc/shadow, etc.) mais autant utiliser la commande adduser qui automatise ces tâches.


Quand un compte utilisateur est créé, un shell est assigné a l'utilisateur, ainsi que des fichiers de configuration par défaut. On lui affecte également un répertoire utilisateur, souvent sous la forme /home/nom_utilisateur.


Quand un compte est créé, l'utilisateur possède un User Name (login name) avec un User ID (User ID), ainsi qu'un groupe (GID). Ces deux éléments (UID, GID) servent à garder une trace de l'utilisateur et à déterminer à quels fichiers il peut accéder.


2) Créez un utilisateur de votre choix en utilisant la commande :

adduser <nom_utilisateur>


Allez dans /home. Que constatez-vous ? Que contient le répertoire de l'utilisateur qui vient d'être créé ?


Vous pouvez également afficher le contenu caché du répertoire en tapant la commande ls -ah.


3) Editez le fichier /etc/passwd avec vi. Allez à la fin du fichier. Vous constatez qu'une ligne a été ajoutée pour notre utilisateur.


Retrouvez sur cette ligne :


Sortez sans sauvegarder.


4) Allez sur un autre tty et tentez de vous connecter avec ce nom d'utilisateur. Y arrivez-vous ? Pourquoi ?


Effectivement, aucun mot de passe n'a été défini. On peut confirmer cela en affichant le contenu de /etc/shadow.


A la fin de ce fichier, voyez-vous un mot de passe défini pour l'utilisateur que vous venez de créer ?

Un mot de passe dans /etc/shadow est chiffré en MD5 comme le mot de passe pour l'utilisateur guest juste au-dessus.


Ce fichier contient d'autres champs en plus du nom d'utilisateur :


Il est possible de changer ces différents champs (dans /etc/passwd et dans /etc/shadow) avec la commande usermod.


5) Pour défiinir un mot de passe pour l'utilisateur, en root, utiliser la commande :

passwd <nom_utilisateur>


Tapez toto comme mot de passe.

Le programme vous répond : MAUVAIS PASSWORD : trop court. Mais votre mot de passe est quand même pris en compte (vous devez le confirmer).


Les règles pour définir un bon mot de passe sont les suivantes :


Changez le mot de passe pour mettre un mot de passe plus adapté de votre choix.


6) Après avoir défini le mot de passe pour l'utilisateur, constatez qu'une entrée pour un mot de passe chiffré a été ajoutée dans /etc/shadow.


Vous pouvez constater que le chiffrement du mot de passe est fait avec l'algorithme MD5 (le mot de passe commence par $1$). MD5 est un algorithme de chiffrement à sens unique (one-way hash), ce qui signifie qu'un mot de passe chiffré en MD5 ne peut être déchiffré.


7) Pour changer d'utilisateur, vous pouvez vous déconnecter de l'utilisateur en cours en tapant exit.

On peut cependant utiliser la commande su (substitute user) pour lancer un shell avec un autre nom d'utilisateur. En résumé, su permet à un utilisateur de se transformer temporairement en un autre utilisateur. Si aucun nom n'est précisé, c'est root qui est utilisé.


Si aucune option n'est précisée, l'environnement reste celui de l'utilisateur courant. Le répertoire courant n'est pas changé.


En précisant su - , l'environnement du nouvel utilisateur est utilisé.


Connectez-vous en guest1. Tapez ensuite :

su

Cela vous connecte en root. Votre répertoire courant a-t'il changé ? (au besoin, tapez pwd)


Tapez exit. Vous revenez en guest1.


Tapez maintenant :

su -

Vous vous connectez en root avec son environnement. Dans quel répertoire vous trouvez-vous ? Cela est normal, car l'environnement de root a été initialisé.


Voyez-vous la différence entre su et su - ?


A partir de root, tapez :

su – guest1

pour vous connecter en guest1. Vous pouvez ainsi « empiler » des connexions utilisateurs.


Si vous êtes perdu, vous pouvez savoir quel utilisateur vous êtes en tapant la commande :

whoami


Tapez exit pour vous déconnecter des utilisateurs.


8) Supprimez l'utilisateur que vous avez créé avec la commande :

userdel -r nom_utilisateur


L'option -r spécifie que le répertoire de l'utilisateur dans /home doit être également supprimé.


9) Création d'un utilisateur à la main

Pour bien comprendre les différents élements qui concourent à la création d'un utilisateur sous Linux, nous allons créer un compte à la main, sans passer par la commande adduser.


La première étape consiste à éditer le fichier /etc/passwd avec la commande vipw. Cette commande :


Bien-sûr, toutes ces manipulations doivent être faites en root


Tapez :

vipw


A la fin du fichier, avec les raccourcis clavier de vi que vous connaissez, rajoutez une ligne pour créer un nouvel utilisateur, ou copiez/collez simplement la ligne de guest puis modifiez-la pour ce nouvel utilisateur.


Vous pouvez par exemple modifier la nouvelle ligne pour y mettre l'utilisateur toto en modifiant les différents champs qui composent cette ligne (voir les pages précédentes pour un détail de ces champs) avec les caractéristiques suivantes :


Tapez :wq pour sauvegarder et sortir.


vipw vous demande maintenant si vous voulez éditer le fichier /etc/shadow


A quoi sert ce fichier ?


Répondez y pour yes (!)


10) Vous éditez maintenant le fichier /etc/shadow


Rajoutez à la fin du fichier la ligne :

toto:!!:13440:0:99999:7:::


Les différents champs sont expliqués à la première page.


Si cette ligne n'apparaissait pas, la commande passwd qui permet de définir le mot de passe de l'utilisateur nous renverrait un message d'erreur.


11) Vous pouvez maintenant définir le mot de passe pour toto qui sera ensuite chiffré dans /etc/shadow grâce à la commande passwd. Tapez :

passwd toto


12) Il faut également créer un groupe toto correspondant à l'utilisateur toto. Cela ne sert pas à grand chose mais c'est nécessaire. Tapez :

vigr


Cela fait les mêmes opérations que vipw en éditant le fichier /etc/group


Rajoutez à la fin du fichier une ligne pour le groupe toto en mettant le GID approprié défini au-dessus.


Quand vigr vous demande d'éditer /etc/gshadow, répondez non.


11) Il faut ensuite créer le répertoire utilisateur et modifier les droits sur les différents fichiers.

A tout moment, vous pouvez voir le propriétaire et les droits sur les répertoires en tapant ls -l


Tout d'abord, copiez le répertoire /etc/skel dans le répertoire /home.

cp -r /etc/skel /home


Comprenez-vous cette commande ? Nous l'avons vu au TP4.


Ensuite, renommez le répertoire /home/skel en /home/toto

mv /home/skel /home/toto


Le répertoire /etc/skel (skeleton, squelette) est un modèle de répertoire utilisateur. Il contient les fichiers par défaut qui sont copiés à la création d'un utilisateur par la commande useradd.


Avec le ls -l, vous voyez que le propriétaire du répertoire /home/toto est root. Tapez alors :

chown -R toto /home/toto


Cette commande positionne l'utilisateur toto comme propriétaire (owner) du répertoire /home/toto et des sous-répertoires et fichiers avec le mode récursif (-R)


Tapez ensuite :

chmod -R go=u,go-w /home/toto

chmod go= /home/toto


La première commande modifie les droits d'accès aux fichiers et sous-répertoires dans /home/toto. La deuxième commande modifie les droits d'accès sur le répertoire /home/toto lui-même.


12) Vérifiez maintenant que votre utilisateur est valide. Dans une autre console virtuelle, connectez-vous avec ce nom d'utilisateur. Quel est votre répertoire utilisateur ? Y a-t'il des fichiers déjà présents dedans ?


13) Gestion de groupes


Nous allons maintenant considérer la gestion des groupes. Vous vous rappelez que les utilisateurs guest, toto et test sont définis sur la machine.


Connectez-vous en utilisateur guest. Créez le fichier /tmp/testgroup


14) A qui appartient ce fichier ? (tapez ls -l pour le savoir)

Qui est également le groupe propriétaire ?


15) L'utilisateur test peut-il accéder à ce fichier en écriture ? Connectez-vous en test pour le vérifier, en essayant d'ouvrir le fichier avec vi.


16) Vous voulez que l'utilisateur test puisse accéder à ce fichier en écriture. Pour cela, nous allons créer le groupe groupe1 commun à test et guest et définir que le fichier /tmp/testgroup appartient au groupe groupe1.


En root, tapez :

groupadd groupe1


Cette commande ajoute simplement le groupe groupe1.


16) Ajoutez maintenant les utilisateurs guest et test au groupe1 :

usermod -G groupe1 guest

usermod -G groupe1 test


17) Il faut maintenant changer les permissions sur /tmp/testgroup. Cela doit être fait toujours en root. Tapez :

chgrp groupe1 /tmp/testgroup


18) Connectez-vous avec l'utilisateur guest ou test. Pouvez-vous accéder au fichier /tmp/testgroup suivant les permissions de groupe ?




Gestion des utilisateurs

/etc/passwd Contient les définitions des utilisateurs

/etc/shadow Contient les mots de passe chiffrés des utilisateurs



Ajouter un utilisateur

adduser <utilisateur>

Supprimer un utilisateur

userdel <utilisateur>

Ajouter un groupe

groupadd <group>

Ajouter un utilisateur à un groupe

usermod -G <groupe> <utilisateur>


Changer l'utilisateur propriétaire d'un fichier

chown -R <utilisateur> <fichier>

Changer l'utilisateur propriétaire d'un répertoire

chown -R <utilisateur> <répertoire>

Changer le groupe propriétaire d'un fichier

chgrp <groupe> <repertoire/fichier>



Copyright 2007 Thibault Bartolone 25