Ftp

Le protocole FTP

FTP (File Transfer Protocol) est un protocole, c'est-à-dire un langage standard de communication entre deux machines, permettant à des machines de types différents (ou dont le système d'exploitation est différent) de transférer des fichiers sur un réseau fonctionnant sous TCP/IP.

FTP fonctionne dans un environnement client/serveur, c'est-à-dire que la machine distante est configurée en serveur et par conséquent attend qu'une machine lui demande un service. Sous UNIX, le service est fourni par ce que l'on appelle un démon, une petite tâche qui fonctionne en arrière plan. Le démon FTP s'appelle ftpd.

Les logiciels clients sont nombreux, la plupart sont en ligne de commande (par exemple la commande ftp, implémentée en standard sous de nombreux systèmes d'exploitation), mais certains permettent de manipuler des fichiers sous une interface graphique (CuteFTP par exemple), rendant les transferts de fichiers plus conviviaux.

Le protocole FTP permet d'échanger un fichier à la fois, dans les deux sens entre la machine client (celle qui a initié la connexion, donc la machine appelante) et la machine serveur (celle qui fournit le service FTP, donc la machine appelée). Le protocole FTP permet aussi d'autres actions telles que la création et la suppression de répertoires (à condition qu'il soit vide), le listage des fichiers, la suppression et le renommage de fichiers, ...

Protocole et implémentation

Il ne faut pas confondre les deux notions de protocole et d'implémentation!
En effet, un protocole est un ensemble de règles et de procédures qui ont été définies afin de standardiser la communication, alors que l'implémentation est la programmation d'un logiciel suivant (plus ou moins bien) les recommandations du protocole. Ainsi, FTP a rapidement été implémenté (adapté à partir des spécifications du protocole) sous de nombreuses plateformes.

Démarrage d'une session FTP

FTP est fourni en standard sous diverses plateformes, dont UNIX, Windows9x, WindowsNT, Linux, ...
La commande pour initier une session FTP est généralement la suivante:

ftp nom_du_serveur

nom_du_serveur représente bien évidemment le nom (ou l'adresse IP) de la machine distante à laquelle on désire se connecter. Il faut bien évidemment que la machine cible soit un serveur FTP.

Lors de l'initialisation de la connexion, un certain nombre de lignes de texte apparaît à l'écran. La première ligne signale que vous êtes connecté à un serveur FTP, les lignes suivantes constituent un message de bienvenue, pouvant indiquer le type de site FTP dont il s'agit (i.e quel genre de fichiers il héberge ou l'organisme auquel il appartient), ou bien des recommandations pour les utilisateurs.

Sous FTP, chaque ligne commence par un numéro indiquant un code relatif à un échec ou une réussite. Dans le cas du message de bienvenue, la ligne est par exemple précédée du nombre 220, qui signifie que "le service est prêt pour le nouvel utilisateur".

Le serveur vous demande de saisir votre nom d'utilisateur (aussi appelé login ou ID) afin de définir des privilèges d'accès (comme le droit d'écriture ou de lecture). Après validation, une ligne commençant par le nombre 331 vous invite à saisir votre mot de passe (password), celui-ci est masqué, c'est-à-dire qu'il n'apparaît pas à l'écran.
Il se peut que le serveur soit public, auquel cas le nom d'utilisateur est anonyme, il vous faudra donc rentrer comme login: "anonymous". La coutume veut que l'on entre comme mot de passe d'un site public son adresse de courrier électronique, mais vous pouvez rentrer celui de votre choix.

Lorque vous validez celui-ci, un message vous indiquera si la connection a été établie ou non, auquel cas les raisons seront données (le site peut par exemple avoir atteint sa limite supérieure en terme d'utilisateur, dans ce cas le message "Nom more users access allowed" apparaît).

Une fois connecté le site FTP attend de vous des commandes décrivant les actions à effectuer.

Commandes sous FTP

Etant donné que les serveur tournent généralement sur des plateformes UNIX (car elles sont mieux adaptées au travail en réseau), les commandes FTP sont généralement des commandes UNIX.

Les commandes standards sont les suivantes:

Commande Description
help Affiche l'ensemble des commandes supportées par le serveur FTP
status Permet de connaître certains paramètres de la machine cliente
binary Cette commande vous fait basculer du mode ASCII (envoi de documents textes) au mode binary (envoi de fichiers en mode binaire, c'est-à-dire pour les fichiers non texte, comme des images ou des programmes)
ascii Bascule du mode binary au mode ascii. Ce mode est le mode par défaut
type Permet d'afficher le mode courant de transfert (binary ou ascii)
user Vous permet de réouvrir une session sur le site FTP en cours avec un nom d'utilisateur différent. Un nouveau mot de passe vous sera laors demandé
ls Permet de lister les fichiers présents dans le répertoire courant. La commande "ls -l" donne des informations supplémentaires sur les fichiers
pwd Affiche le nom complet du répertoire courant
cd Cette commande signifie change directory, elle permet de changer le répertoire courant. La commande "cd .." permet d'accéder au répertoire de niveau supérieur
mkdir Le commande mkdir (sous UNIX, ou md sous système Microsoft) permet de créer un répertoire dans le répertoire courant. L'utilisation de cette commande est réservée aux utilisateurs ayant un accès le permettant
rmdir Le commande rmdir (sous UNIX, ou rd sous système Microsoft) permet de supprimer un répertoire dans le répertoire courant. L'utilisation de cette commande est réservée aux utilisateurs ayant un accès le permettant
get Cette commande permet de récupérer un fichier présent sur le serveur
  • Si la commande est suivie d'un nom de fichier, le fichier distant est transféré sur la machine locale dans le répertoire local en cours
  • Si la commande est suivie de deux noms de fichiers, le fichier distant (le premier nom) est transféré sur la machine locale dans le répertoire local en cours, avec le nom de fichier précisé (le deuxième nom)
Si jamais le nom de fichier contient des espaces il faut veiller à le saisir entre guillemets
put Cette commande permet d'envoyer un fichier local sur le serveur
  • Si la commande est suivie d'un nom de fichier, le fichier local est transféré sur le serveur dans le répertoire distant en cours
  • Si la commande est suivie de deux noms de fichiers, le fichier local (le premier nom) est transféré sur le serveur dans le répertoire distant en cours, avec le nom de fichier précisé (le deuxième nom)
Si jamais le nom de fichier contient des espaces il faut veiller à le saisir entre guillemet
open Ferme la session en cours et ouvre une nouvelle session sur un autre serveur FTP
close Ferme la session en cours, en laissant le logiciel FTP client actif
bye Déconnecte le logiciel client du serveur FTP et le met en état inactif
quit Déconnecte le logiciel client du serveur FTP et le met en état inactif