Travaux pratiques d'introduction

Pendant ces travaux pratiques, vous allez prendre en main le terminal et apprendre les commandes de base qui vous seront indispensables dans la suite de votre formation.

Chaque fois qu'un exercice vous est proposé, vous êtes invité à écrire la réponse dans un fichier (toujours le même fichier pour toutes les réponses) et, à la fin des TP, copier ce fichier à l'endroit indiqué. Si l'exercice ne pose pas de question directe, mais demande d'exécuter des commandes, écrivez dans le fichier les commandes que vous avez tapé dans le terminal et ce que vous obtenez (vous pouvez commenter les résultats si vous pensez avoir quelque chose à ajouter).

L'écriture dans le fichier (l'édition du fichier), sera faite avec l'éditeur de texte Vi(m), dont la prise en main est également l'un des objectifs des TP.

Préambule

Un terminal, c'est en fait un terminal virtuel qui fait référence aux terminaux (bien réels ceux-ci) reliés à un ordinateur central, qui étaient utilisés avant pour que plusieurs personnes puissent travailler simultanément sur cet ordinateur. À présent, il est courant d'avoir un ordinateur par personne et de pouvoir ouvrir plusieurs terminaux virtuels pour faire plusieurs choses à la fois.

Le terminal n'est en fait que le support à un interprète de commandes, couramment appelé shell. Il existe plusieurs interprètes de commandes et celui qui vous allez utiliser est bash (Bourne again shell, un successeur de sh écrit par Steve Bourne de la compagnie AT&T Bell en 1977).

Dans un terminal, la première des choses à faire est d'oublier la souris et de penser en terme de ligne. Chaque nouvelle ligne de l'interprète de commandes commence par un ensemble de symboles particuliers que l'on nomme prompt (de l'anglais to prompt, inciter) ou invite de commande en français.
Pour le reste de ce texte, cette invite de commande sera représentée par la suite de caractères #>  et n'est pas à retaper à chaque fois.

Dans ce contexte, il faut donc se servir du clavier pour entrer des commandes et chacune de ces commandes sera validée à l'aide de la touche [Entrée].

Pendant que l'on tape la commande et avant de l'avoir validée, on peut se déplacer sur la ligne (même si cette ligne logique occupe plusieurs lignes à l'écran) avec les touches [←] et [→].

On peut, à tout moment, se déplacer dans l'historique des commandes avec les touches [↑] et [↓], éditer la commande ainsi retrouvée et la valider comme si c'en était une nouvelle. On évite ainsi beaucoup de frappes inutiles.

Enfin, on se souviendra que partout sous Linux, la casse des caractères (minuscules ou majuscules) est importante et que TPShell est effectivement différent de tpshell.

Commandes de base

Où suis-je et que vois-je ?

Quand vous ouvrez pour la première fois votre fenêtre de terminal et que vous n'êtes pas encore complètement familiarisé avec votre environnement, il est intéressant de savoir où vous vous trouvez (cela signifie savoir dans quel répertoire — ou dossier, ces termes étant équivalents — de l'arborescence du système de fichiers l'on se trouve). Il existe à cet effet la commande pwd (print working directory). Exemple :

#> pwd
/home/serpaggi/

Après avoir tapé les caractères p, w et d il ne faut pas oublier de valider la commande avec la touche [Entrée]. Et n'oubliez pas, la séquence #>  représente le prompt, il ne faut pas la reproduire.

Savoir où l'on se trouve c'est bien, mais il est tout aussi important de savoir ce qu'il y a là où l'on est et comment faire pour se déplacer dans un autre répertoire. Pour savoir ce qu'il y a dans le répertoire où l'on se trouve, il existe la commande ls (de list en anglais).

#> ls
Desktop        Mail   Projets
Enseignements  Perso

Sur votre poste de travail, la commande donnera certainement un résultat différent. Soit il n'y aura rien, soit il y aura des répertoires et des fichiers avec d'autres noms. Cela dépend de ce que vous avez déjà pu créer dans votre répertoire personnel ou de ce que la personne qui a mis en place le système d'exploitation sur cet ordinateur a fait.

Pour que ces TP se déroulent bien, nous allons créer un nouveau répertoire (directory en anglais) avec la commande mkdir (make directory) et nous allons travailler presque uniquement dans ce répertoire.

Un répertoire peut être vu comme une division logique de votre espace de travail dans laquelle vous pouvez ranger des choses (d'autres répertoires ou des fichiers). C'est extrêmement utile pour s'y retrouver au fil du temps.

La commande mkdir a besoin d'un argument qui est le nom du répertoire à créer.

#> mkdir TPShell

Vous remarquerez l'espace entre le nom de la commande et son argument. Il en va toujours ainsi, pour toutes les commandes et tous les arguments. Le caractère [Espace] est un des caractères de séparation de mots.

Exercice :

Dans votre répertoire personnel, créez un répertoire TPShell en utilisant la commande mkdir.

Note : le fichier de réponses n'existant pas encore, vous y noterez plus tard les commentaires relatifs à cet exercice.

À présent, listez à nouveau le contenu du répertoire vous donne quelque chose qui ressemble à ça :

#> ls
Desktop        Mail   Projets
Enseignements  Perso  TPShell

Nous voyons apparaître le répertoire tout juste créé.

Se déplacer

Maintenant que nous savons nous repérer, essayons de nous déplacer. Pour cela, une seule commande est utilisée : cd (change directory). Cette commande prend un paramètre qui est le nom du répertoire dans lequel nous voulons aller (ce répertoire doit exister). Par exemple, pour nous déplacer dans le répertoire TPShell que l'on vient de créer, il suffit de taper la commande suivante :

#> cd TPShell

Cela fonctionne parce que le répertoire TPShell est dans le répertoire actuel. La commande cd ne va pas parcourir toutes vos données à la recherche d'un éventuel répertoire TPShell.

Il existe plusieurs répertoires particuliers, virtuels ou pas, dont on peut également se servir avec la commande cd. Ils sont très importants et en voici la liste :

Dans votre répertoire d'accueil nous allons créer notre premier fichier. Ce sera le fichier destiné à recueillir les réponses aux exercices. Pour cela, nous allons utiliser l'éditeur de texte vim. vim est lui même une commande, mais elle est interactive.

Mise en garde :

L'éditeur de texte vim, bien que très simple, est particulier à prendre en main. Ne vous précipitez pas, lisez attentivement les explications et faites attention à ce que vous tapez.

Exercice :

Créez le fichier de vos réponses comme décrit dans les paragraphes suivants.

Assurez-vous que vous êtes bien dans votre répertoire d'accueil et déplacez-vous y le cas échéant.

Nous allons créer le fichier Reponses.txt (volontairement sans accent) avec la commande suivante :

#> vim Reponses.txt

Truc Vim :

La casse des caractères est importante pour les commandes. Par exemple, :q et :Q n'ont pas du tout la même signification.
Il est possible de grouper les commandes : vous pouvez enregistrer et quitter en même temps avec la double commande :wq.

À présent vous êtes "dans" vim, l'affichage dans votre terminal a changé mais rien de ce que vous avez pu créer avant n'est perdu.

vim fonctionne selon deux modes : le mode normal et le mode insertion. Au départ, vous êtes en mode normal. Pour pouvoir écrire quelque chose, vous devez passer en mode insertion. Pour cela, appuyez sur la touche [i].

Écrivez Présentation Linux, Travaux pratiques de suivi de votre prénom et de votre nom puis passez à la ligne en appuyant sur la touche [Entrée].
Ce sera tout pour le moment. Il faut donc quitter l'éditeur et cela se fait en trois temps : 1) repasser en mode normal, 2) enregistrer le fichier et 3) quitter :

  1. Repasser en mode normal se fait en appuyant (une seule fois) sur la touche [Esc] (ou [Echap] selon les claviers).
  2. Sauvegarder se fait en passant la commande :w à l'éditeur (comme write) et en validant avec la touche [Entrée].
  3. Quitter l'éditeur se fait en passant la commande :q (comme quit) et en validant avec la touche [Entrée].

Comme vous pouvez le voir, beaucoup de commandes commencent par :. Ce caractère, tapé en mode normal, permet de passer à l'éditeur une commande longue. Elle apparaît en bas de l'écran et vous devez la valider avec [Entrée].

Exercice :

Déplacez-vous dans le répertoire TPShell.
De la même manière que précédemment, créez ici même un autre répertoire nommé Introduction.
Déplacez-vous dans ce nouveau répertoire et créez un fichier vide du nom de notes.txt (vous pouvez créer un fichier vide avec l'éditeur Vim tout simplement en sauvegardant un fichier dans lequel vous n'écrivez rien).

Nous avons donc une arborescence locale qui doit ressembler à ça :

~ +-- TPShell --- Introduction --- notes.txt
  |
  +- Reponses.txt
  |
  +- ...
  .
  .
  .

Truc Vim :

Il est possible de copier une ligne en se déplaçant sur la ligne et en tapant la séquence yy en mode normal (sans :) où que l'on se trouve sur la ligne.
Ensuite, la touche p permet de la coller où l'on veut.
dd coupera la ligne au lieu de la copier.

Séparateur de fichiers

Depuis votre répertoire d'accueil, il est possible d'aller directement vous positionner dans le répertoire Introduction que vous venez de créer. Pour cela, il suffit de donner à la commande cd l'intégralité du chemin à parcourir depuis la position courante, en utilisant à chaque changement de répertoire le séparateur de fichiers /.

Par exemple vous pouvez faire :

#> cd TPShell/Introduction
#> pwd
/home/serpaggi/TPShell/Introduction

Où que vous soyez dans l'arborescence du système de fichiers, vous pouvez vous rendre directement dans le répertoire Introduction en utilisant un chemin absolu :

#> cd ~/TPShell/Introduction
#> pwd
/home/serpaggi/TPShell/Introduction

Le séparateur de fichiers / peut-être utilisé dans tous les arguments des commandes qui demandent des noms de fichiers ou de répertoires. Cela permet de désigner des fichiers ou des répertoires qui ne sont pas dans le répertoire courant.

Exercice :

À partir de là, déplacez-vous dans différents répertoires et visualisez leur contenu pour vous familiariser avec les commandes pwd, ls et cd et leurs arguments.

Vous pouvez explorer d'autres répertoires que ceux que vous venez de créer.

À la fin de vos expérimentations, arrangez vous pour vous retrouver dans votre répertoire de départ.

Commandes courantes

Manuel en ligne

Comme vous pouvez vous en douter, il existe beaucoup de commandes et chacune d'elle propose souvent beaucoup d'options. Il est donc normal que l'on ne parvienne pas à tout mémoriser. Pour nous aider, Linux (et les autres Unix) dispose d'un manuel en ligne qui est accessible via la commande man. Par exemple, pour afficher la page de manuel de la commande mkdir il suffit de taper :

#> man mkdir

Truc Vim :

Vim aussi propose une aide en ligne très complète. Pour y accéder, vous pouvez taper la commande :help.
Si vous désirez avoir l'aide concernant une commande en particulier, par exemple i, il suffit de taper :help i.
Si vraiment vous êtes perdus, essayez :help!.

Là, s'affiche la page de manuel de la commande mkdir (en fait, uniquement la portion qui tient dans la fenêtre du terminal). On peut se déplacer dans la page avec les touches [↑] et [↓] et quitter le manuel par une simple pression de la touche [q].

Toutes les pages de manuel sont à peu près ordonnées de la même manière, vous retrouverez donc pratiquement toujours les paragraphes NAME, SYNOPSIS, DESCRIPTION et SEE ALSO.

Les pages de manuel sont organisées en sections qui correspondent au type de la commande. La commande mkdir que nous voulons utiliser fait partie de la section 1, comme l'indique la toute première ligne de la page de manuel : MKDIR(1).

Il arrive que des commandes aient le même nom mais n'aient pas la même utilité. Leurs manuels sont donc dans des sections différentes et il est possible de choisir laquelle afficher en précisant le numéro de la section à la commande man comme ci-dessous :

#> man 1 mkdir
...
#> man 2 mkdir
...

Exercice :

Pour plus d'informations sur les différentes sections et l'utilisation de la commande man, lisez la page de manuel de man.

  1. Donnez le nom de l'option permettant d'afficher toutes les pages de manuel existantes pour une commande donnée. Essayez-la pour mkdir.
  2. Donnez le nom de l'option permettant de rechercher une chaîne de caractères dans toutes les descriptions des pages de manuel. Essayez-la avec le mot directory.

Copier et déplacer

Mise en garde :

Ces commandes ne donnent pas d'avertissement si le fichier destination existe déjà, que ce soit dans le même répertoire ou pas. Si c'est le cas, il sera tout simplement remplacé et son contenu sera perdu sans aucun moyen de le retrouver.

Truc Vim :

Vous pouvez éditer un fichier en précisant à vim son chemin relatif. Exemple :
vim ../Reponses.txt

Nous allons à présent voir comment copier, déplacer et renommer fichiers et répertoires. Pour ces actions, nous allons utiliser principalement les deux commandes cp et mv (pour copy et move respectivement). La première copie et éventuellement renomme, la seconde déplace et/ou renomme.

Chacune de ces commandes prend au minimum deux arguments qui sont, dans l'ordre, le fichier original (dit fichier source) et le fichier destination. Par exemple, pour copier le fichier fichier1 en fichier2, il suffit d'entrer la commande suivante :

#> cp fichier1 fichier2

Bien entendu, il faut être dans le bon répertoire, c'est à dire un répertoire où l'on peut trouver un fichier du nom de fichier1.

Si le second argument est un répertoire, alors la copie ou le déplacement du fichier source sera créée dans le répertoire en question. Par exemple, pour déplacer le fichier Reponses.txt dans le répertoire TPShell, il suffit de taper :

#> mv Reponses.txt TPShell

Exercice :

(Pour cet exercice, ne notez les réponses qu'à la fin.)

  1. Revenez dans votre répertoire de départ.
  2. Cherchez dans les pages de manuel des commandes cp et mv le moyen d'être averti si on est sur le point d'écraser un fichier lors de l'opération.
  3. Avec un navigateur Internet, rendez-vous sur la page du cours1 (http://www.emse.fr/~serpaggi/enseignement/Linux/) puis :
    1. téléchargez le fichier de configuration de vim donné en lien (clic droit, puis "Enregistrer la cible du lien sous..."). Enregistrez ce fichier dans votre répertoire personnel sous son nom d'origine.
    2. Faites une copie de sauvegarde de votre fichier .vimrc s'il existe (vous pouvez copier/coller la commande suivante2 dans votre terminal) :
      #> [ -f ~/.vimrc ] && cp ~/.vimrc ~/.vimrc-$(date +%Y%m%d)
      
    3. Renommez le fichier vimrc en .vimrc à l'aide de la commande mv (les fichiers commençant par un . ne sont pas visibles quand on affiche le contenu du répertoire où ils se trouvent. Pour les voir il faut passer l'option -a à ls : ls -a).
  4. Copiez votre fichier Reponses.txt dans le répertoire TPShell.
  5. Déplacez le fichier Reponses.txt de votre répertoire principal vers le répertoire TPShell/Introduction.
  6. Vous avez à présent 2 exemplaires de ce fichier et vous devez toujours y inscrire vos réponses. Utilisez pour cela le fichier du répertoire TPShell/Introduction.

Le fichier .vimrc que vous venez de copier dans votre répertoire personnel est un fichier de configuration de l'éditeur Vim. Il est impératif qu'il se trouve dans votre répertoire personnel.

Il a été écrit dans l'optique de vous faciliter légèrement la vie pour la suite de vos enseignements.

À partir de maintenant, il sera automatiquement lu et évalué à chaque lancement de Vim. De ce fait, si vous êtes en train d'utiliser Vim ce fichier n'est pas encore pris en compte. Un moyen simple de le faire est de quitter l'éditeur puis de le relancer. Si le fichier ne comporte pas d'erreur et qu'il a été lu, vous n'avez aucun avertissement. Vous pouvez vérifier que le chargement a effectivement eu lieu en faisant afficher une variable définie dans ce fichier de configuration. Dans Vim, tapez la commande :echo vimrcEMSE.

C'est un fichier qui ne contient que des commandes pour Vim et qui est écrit en simple texte. Vous pouvez donc l'éditer pour voir ce qu'il contient et pour comprendre ce qu'il fait.

Vous pouvez même le modifier si vous pensez savoir ce que vous faites et que vous pouvez améliorer les choses.

Supprimer fichiers et répertoires

Truc Vim :

En mode normal : pour supprimer un caractère il suffit d'appuyer sur x ; pour changer un mot, on se positionne au début du mot et on tape cw ; pour annuler la dernière action on utilise u.

Il est parfois nécessaire de supprimer des fichiers ou des répertoires. Même si un répertoire n'est au fond rien d'autre qu'un fichier particulier, il existe deux commandes distinctes :

Encore une fois nous vous mettons en garde : une fois un fichier ou un répertoire supprimé, il n'est plus possible de le retrouver. Soyez prudents et pour l'exercice suivant, vérifiez bien chaque ligne de commande avant de la valider.

Exercice :

Déplacez-vous dans votre répertoire TPShell/Introduction si vous n'y êtes pas déjà.

  1. Créez trois répertoires avec les noms suivants : Poubelle, Trash et Wipe.
  2. Copiez le fichier Reponses.txt qui est dans votre répertoire TPShell dans le répertoire Poubelle et dans le répertoire Wipe.
  3. Avec la commande rm essayez d'effacer les trois répertoires, l'un après l'autre. Commentez.
  4. Refaites la même chose avec la commande rmdir. Commentez.
  5. Cherchez dans la page de manuel de la commande rm un moyen de supprimer un répertoire qui n'est pas vide et supprimez le répertoire Wipe et tout ce qu'il contient.
  6. Supprimez le contenu du répertoire Poubelle sans supprimer le répertoire lui-même (il y a plusieurs façons de faire).

Afficher le contenu d'un fichier

Truc Vim :

i commence l'insertion sous le curseur et I commence au début de la ligne, où que l'on soit sur la ligne.
a commence l'insertion après le curseur et A commence directement à la fin de la ligne, où que l'on se trouve sur la ligne.

Un fichier est un ensemble de données qui pour un humain peuvent être cohérentes ou non, compréhensibles ou pas. Par exemple, chacune des commandes que vous avez utilisé jusqu'à présent est stockée dans un fichier.

Afficher le contenu de ces fichiers ne serait pas très utile. Par contre, il peut être intéressant de voir le contenu de fichiers que l'on sait lisible, par exemple, votre fichier Reponses.txt. Pour cela nous avons le choix entre trois commandes : cat, more et less auxquelles il suffit de donner le nom du fichier en argument (en ajoutant éventuellement son chemin si le fichier n'est pas dans le répertoire courant).

Nous pouvons voir le contenu de notre fichier-réponse en utilisant, par exemple, la commande cat (catalogue) :

#> cat Reponses.txt
...

Cette commande affiche l'intégralité du fichier même s'il est plus grand que la fenêtre du terminal. Si c'est un fichier très long, il faudra se servir des barres de défilement du terminal pour aller voir le début.

Cela n'est pas toujours pratique et les commandes more et less sont plus adaptées dans ce cas puisqu'elles proposent un affichage page par page avec possibilité de vous déplacer dans le fichier visualisé. more est très basique alors que less est un peu plus évolué et plus souple d'utilisation. (Pour quitter more ou less il suffit d'appuyer sur la touche [q]).

Exercice :

  1. Visualisez le contenu de votre fichier-réponse en utilisant ces trois commandes.
  2. Expliquez les différences entre un éditeur de texte comme vim et un outil de visualisation comme less et pourquoi parfois il faut préférer l'un plutôt que l'autre.

Les caractères génériques

Jusqu'à présent nous avons vu comment travailler sur un seul fichier à la fois (copier un seul fichier à la fois, afficher un seul fichier à la fois, ...). Il est des cas où manipuler plusieurs fichiers simultanément peut-être utile et pour cela nous allons utiliser les caractères génériques (ou jokers ou encore wildcards en anglais).

Il en existe principalement deux qui sont l'astérisque * et le point d'interrogation ?.

Truc Vim :

Vous pouvez ouvrir un fichier directement depuis vim avec la commande :e. Par exemple :e ../notes.txt.

Le premier sert à remplacer zéro ou plusieurs caractères, quels que soient ces caractères, alors que le second sert à remplacer exactement un caractère quel qu'il soit.

Par exemple, pour avoir la liste de tout ce qui se termine par Info dans notre répertoire d'accueil, on pourrait utiliser :

#> ls *Info

Exercice :

  1. Faites plusieurs copies du fichier notes.txt dans le répertoire Poubelle avec les noms suivants : notes.txt, Notes.txt, Annotes.txt, NOTES.txt, NOTES.TXT et notes.
  2. Assurez vous de bien avoir six fichiers dans le répertoire Poubelle.
  3. Déplacez vous dans le répertoire Poubelle.
  4. Affichez la liste des fichiers avec l'extension .txt.
  5. Affichez la liste des fichiers qui contiennent un . dans leur nom.
  6. Effacez les fichiers notes.txt et Notes.txt en une seule commande mais sans effacer le fichier Annotes.txt.
  7. Effacez en une seule commande, tous les fichiers restant dans ce répertoire.

Ces caractères génériques peuvent être utilisés pour pratiquement toutes les commandes que nous avons vu aujourd'hui.

Comme toujours il faut rester prudent et bien relire sa ligne de commande avant de la valider. L'exercice suivant illustre ce qu'il peut se passer si l'on est pas assez attentif :

Exercice :

Un utilisateur peu attentif désire effacer tous les fichiers se terminant par .o qui se trouvent dans le répertoire courant.
Il tape donc la commande suivante :

#> rm * .o

Sans faire l'essai vous même, essayez de décrire le résultat de cette commande et donnez la commande correcte.

Avant d'aborder la dernière partie de ces TP, nous allons faire un peu de ménage dans tout ce que nous avons créé jusqu'à présent et ne conserver que les fichiers et répertoires qui vous seront utiles pour la suite.

Exercice :

Dans votre répertoire TPShell supprimez tout ce qui n'est pas nécessaire pour qu'il ne reste qu'une arborescence qui ressemble à ça :

~ +-- .
  |
  +-- ..
  |
  +-- TPShell +-- .
  |          |
  |          +-- ..
  |          |
  |          +-- Introduction +-- .
  |                           |
  |                           +-- ..
  |                           |
  |                           +-- Reponses.txt
  |
  .
  .
  .

Vous ne devez donc pas toucher aux fichiers et répertoires présents directement dans votre répertoire d'accueil.

Répertoire personnel, réseau et partage

Si vous avez correctement suivi les consignes, votre fichier Reponses.txt qui se trouve dans votre répertoire TPShell/Introduction, doit contenir toutes les réponses aux exercices.

Exercice :

Pour que je puisse vérifier ces réponses, vous allez copier ce fichier dans votre répertoire personnel (~) et le renommer selon le format suivant : Reponses-identifiant.txt (exemple : Reponses-serpaggi.txt).

La commande suivante vous permet de le faire rapidement et sans vous tromper sur votre identifiant :
cp ~/TPShell/Introduction/Reponses.txt ~/Reponses-${USER}.txt

${USER} est une variable du système qui contient votre identifiant et qui est initialisée à chaque fois que vous vous connectez.

Tout le monde ayant accès en lecture à votre compte, il me sera aisé de copier ce fichier pour le lire.

Conclusion

Nous avons abordé de manière très sommaire le fonctionnement de la "ligne de commande" sous Linux et l'utilisation de l'éditeur de texte Vim.

Vous avez appris les quelques commandes de base et surtout, vous avez appris qu'il existe un manuel en ligne très complet qui est toujours disponible.

Avec cela vous pourrez vous débrouiller pour commencer la suite des enseignements informatiques et la pratique viendra combler les manques ou les trous de mémoire.

Si vous désirez en savoir plus sur votre système Linux, vous pouvez trouver de la documentation dans le répertoire /usr/share/doc/. Vous pouvez également consulter les pages de manuel de pratiquement toutes les commandes du système qui se trouvent dans les répertoires /bin/, /usr/bin/ et /usr/local/bin/.

Il vous sera également très utile de lire attentivement les pages de manuel de ce qui fait l'interface entre vous et l'ordinateur, à savoir le shell : bash.


1 : Si en tentant de vous connecter sur cette page vous obtenez un message d'avertissement, reportez vous à l'annexe A pour en comprendre le sens et les implications.

2 : En lisant de gauche à droite, cette commande signifie : S'il existe un fichier .vimrc dans mon répertoire d'accueil (~) alors copier ce fichier en le renommant de telle manière à lui postfixer la date du jour sous la forme AAAAMMJJ.


Annexes

Annexe A : Internet, identité et certificats

Quand on parcours Internet à l'aide d'un navigateur, ce dernier obtiens ces pages de différents serveurs. Ces derniers sont repérés par un numéro (leur adresse IP) ou pas un nom, équivalent mais plus facile à retenir (celui qui vous tapez dans la barre d'adresse).

Une personne malveillante peut, avec de bonnes connaissances, mettre en place un serveur qui se fasse passer pour un autre. En général ceci est fait dans le but de vous soutirer mots de passe, identifiants bancaires, etc. Les pages présentées par ce serveur seront une copie parfaite des pages présentées par le serveur original et il sera facile de se faire piéger si l'on n'est pas extrêmement attentif.

Pour éviter cela, les certificats ont été mis en place. Un certificat est un peu comme la pièce d'identité du serveur ; c'est lui qui atteste du fait que quelqu'un certifie que ce serveur est bien celui auquel vous voulez vous connecter. Ce quelqu'un est appelé une autorité de certification, c'est à dire une entité (entreprise ou personne) que tout le monde reconnaît comme étant fiable : l'autorité de certification de votre carte nationale d'identité est l'état et si vous présentez une carte d'identité qui n'ait pas toutes les caractéristiques requises, personne ne voudra croire que vous êtes qui vous prétendez être.

Pour les serveurs web c'est la même chose, il faut que le certificat soit signé par une autorité de certification qui soit connue. En fait, il faut que cette autorité soit connue de votre navigateur. A partir de ce moment, tous certificat présenté par un serveur web et signé par une de ces autorités de certification sera accepté et le site sera considéré comme légitime.

Malheureusement, l'acte de poser une signature, fusse-t-elle électronique, sur un certificat est facturé relativement cher par ces autorités de certification. De plus, en fonction du niveau de certification, la dite autorité demande une présence physique de la personne gestionnaire du site pour attester de son identité (vous remarquerez donc que certains niveaux de certification ne demandent pas cela ...) ce qui peut s'avérer coûteux.

De fait, de nombreux gestionnaires de serveurs ne mettent pas en place de certificat. Mais parfois un certificat pourtant indispensable, c'est le cas des sites sécurisés (souvent ceux qui commencent par https://). Les gestionnaires de tels sites n'ont peut être pas envie de faire l'effort (en temps et financier) de faire signer leur certificat par une autorité de certification connue et donc, ils l'auto-signent : ils font une fausse carte d'identité ou du moins, une carte d'identité que l'état n'a pas validé.

Un navigateur Internet peu regardant verra un certificat et s'en contentera. Mais de nos jours, les navigateurs sont très regardants et vérifient beaucoup de choses. Quand vous tentez d'accéder à un serveur dont le certificat n'est pas signé par une autorité de certification connue, votre navigateur vous affichera un message d'alerte : il est possible qu'une personne malveillante soit en train d'usurper l'identité du serveur auquel vous tentez de vous connecter.

À ce stade, il n'y a aucun moyen pour le navigateur de savoir si c'est un soucis avec le site légitime ou si c'est vraiment une contrefaçon. Il faut donc que vous preniez une décision. Et les moyens que vous avez pour prendre cette décision sont relativement restreints :

Dans tous les cas vous ne pouvez pas vraiment avoir de certitude, dans un sens ou dans l'autre. Si vous décider de passer outre l'alerte de votre navigateur vous prenez un risque. A vous de jauger ce risque.