Comment utiliser la commande FTP sous Linux



Le protocole de transfert de fichiers, bien qu’ancien, reste un outil fonctionnel. Bien que FTP ne possède pas les mesures de sécurité des protocoles contemporains, son utilisation peut s’avérer nécessaire. Voici un guide pour son utilisation.

Mise en garde : Évitez FTP sur Internet

Il est crucial de souligner que le protocole FTP, datant du début des années 1970, a été conçu sans se préoccuper de la sécurité. Il ne chiffre aucune donnée. Les informations de connexion (identifiant et mot de passe), ainsi que les données transférées, sont envoyées en texte clair. Toute personne interceptant la communication peut consulter ces informations sensibles. Malgré cela, FTP conserve certaines utilités.

Le transfert de fichiers au sein de votre réseau est généralement sûr, à condition qu’aucun individu malveillant ne surveille le trafic et n’intercepte vos informations confidentielles. Si les fichiers ne sont pas sensibles, le transfert via FTP sur votre réseau local devrait être acceptable. Linux fournit un programme en ligne de commande FTP standard pour ce type d’utilisation.

Cependant, n’utilisez jamais la commande FTP pour accéder à des ressources externes sur Internet. Privilégiez le programme en ligne de commande SFTP, qui utilise le protocole de transfert de fichiers sécurisé SSH. Nous allons explorer ces deux outils dans ce tutoriel.

Pour illustrer les risques liés à l’utilisation de FTP sur Internet, regardez la capture d’écran ci-dessous. Elle expose un mot de passe FTP en texte clair. N’importe qui sur votre réseau ou entre vous et le serveur FTP peut lire facilement le mot de passe, qui est « MySecretPassword » dans cet exemple.

Sans chiffrement, une personne malveillante pourrait également altérer les fichiers que vous téléchargez ou envoyez durant le transit.

La commande ftp

Si vous possédez un compte FTP valide, vous pouvez vous connecter à l’aide de la commande ci-dessous. Remplacez l’adresse IP dans les commandes par l’adresse IP du serveur FTP auquel vous souhaitez vous connecter.

ftp 192.168.4.25

Attention: La commande ftp doit être utilisée uniquement pour se connecter à des serveurs au sein d’un réseau local de confiance. Pour transférer des fichiers via Internet, utilisez la commande sftp, décrite ci-dessous.

Le serveur FTP répond par un message d’accueil. Le texte de ce message varie selon les serveurs. Il vous demande ensuite l’identifiant du compte auquel vous vous connectez.

Notez que l’adresse IP du site auquel vous vous connectez est affichée, suivie de votre nom d’utilisateur Linux. Si votre identifiant sur le serveur FTP est identique à votre nom d’utilisateur Linux, appuyez simplement sur Entrée. Sinon, saisissez l’identifiant du compte FTP puis appuyez sur Entrée.

Connexion au serveur FTP

Vous serez invité à saisir le mot de passe de votre compte FTP. Saisissez-le et appuyez sur Entrée. Votre mot de passe ne sera pas visible à l’écran. Si l’identifiant et le mot de passe sont validés par le serveur FTP, vous serez connecté.

L’invite ftp> apparaît.

Exploration et téléchargement de fichiers

Pour commencer, vous voudrez probablement obtenir la liste des fichiers présents sur le serveur FTP. La commande ls répond à ce besoin. Notre utilisateur constate la présence du fichier gc.c sur le serveur FTP et souhaite le télécharger sur son ordinateur, qui est considéré comme « l’ordinateur local » dans le vocabulaire FTP.

La commande permettant de récupérer un fichier est get. Notre utilisateur saisit donc la commande get gc.c. Il tape get, un espace, puis le nom du fichier à télécharger.

Le serveur FTP répond en transférant le fichier vers l’ordinateur local, confirmant le transfert, et indiquant la taille du fichier et le temps nécessaire pour le transfert.

ls
get gc.c

Pour télécharger plusieurs fichiers simultanément, utilisez la commande mget (multiple get). Cette commande vous demandera une confirmation pour chaque téléchargement. Vous répondrez en tapant « y » pour oui et « n » pour non.

Cette méthode pourrait être fastidieuse avec un grand nombre de fichiers. Généralement, les ensembles de fichiers sont compressés dans des archives tar.gz ou tar.bz2 uniques.

mget *.c

Envoi de fichiers vers le serveur FTP

En fonction des autorisations attribuées à votre compte FTP, vous pouvez avoir la possibilité de téléverser des fichiers vers le serveur. Pour ce faire, utilisez la commande put. Dans notre exemple, l’utilisateur télécharge un fichier nommé Songs.tar.gz sur le serveur FTP.

put Songs.tar.gz

Comme vous pouvez l’imaginer, il existe une commande permettant de téléverser plusieurs fichiers vers le serveur FTP simultanément. Il s’agit de mput (multiple put). Tout comme mget, mput demande une confirmation « y » ou « n » pour chaque fichier.

Les mêmes considérations s’appliquent à l’envoi de fichiers que pour le téléchargement : il est préférable de regrouper les fichiers dans des archives. Notre utilisateur envoie plusieurs fichiers « .odt » avec la commande suivante:

mput *.odt

Création et manipulation de répertoires

Si votre compte d’utilisateur sur le serveur FTP le permet, vous pouvez créer des répertoires. La commande pour cela est mkdir. Tout répertoire créé avec mkdir sera sur le serveur FTP, pas sur votre ordinateur local.

Pour changer de répertoire sur le serveur FTP, utilisez la commande cd. L’invite ftp> ne changera pas pour refléter votre nouveau répertoire. Utilisez la commande pwd (print working directory) pour voir votre répertoire actuel.

Notre utilisateur crée un répertoire nommé musique, y entre, vérifie sa position avec pwd puis y téléverse un fichier.

mkdir music
cd music
pwd
put songs.tar.gz

Pour revenir rapidement au répertoire parent, utilisez la commande cdup.

cdup

Accès à l’ordinateur local

Pour changer de répertoire sur votre ordinateur local, vous pouvez utiliser la commande lcd à l’invite ftp>. Cependant, il est facile de perdre de vue votre position. Une méthode plus pratique consiste à utiliser la commande !.

La commande ! ouvre un shell sur l’ordinateur local. Vous pouvez exécuter les mêmes commandes que dans un terminal. Tapez exit pour revenir à l’invite ftp>.

Notre utilisateur utilise la commande !, entre dans un shell, exécute ls pour voir les fichiers, puis tape exit pour revenir à l’invite ftp>.

!
ls
exit

Renommage de fichiers

Pour renommer un fichier sur le serveur FTP, utilisez la commande rename. Ici, notre utilisateur renomme un fichier avec rename puis liste les fichiers du répertoire avec ls.

rename songs.tar.gz rock_songs.tar.gz
ls

Suppression de fichiers

Pour supprimer des fichiers sur le serveur FTP, utilisez la commande delete. Pour supprimer plusieurs fichiers, utilisez mdelete. Une confirmation « y » ou « n » vous sera demandée pour chaque fichier.

Ici, notre utilisateur liste les fichiers, en choisit un à supprimer, puis décide de supprimer tous les fichiers ayant l’extension .o.

ls
delete gc.o
mdelete *.o

Utilisation de la commande sftp

Les utilisateurs familiers avec les adresses IP auront remarqué que l’adresse 192.168 du serveur FTP utilisée dans les exemples précédents est une adresse IP interne, également appelée adresse IP privée. Comme indiqué en début d’article, la commande ftp doit être utilisée uniquement sur les réseaux internes.

Pour se connecter à un serveur FTP distant ou public, il faut utiliser la commande sftp. Notre utilisateur se connecte au compte SFTP nommé demo sur le serveur test.trebex.net.

Lors de la connexion, il est informé que la connexion est établie et que l’authenticité de l’hôte ne peut être vérifiée. Ceci est normal lors de la première connexion à un nouvel hôte. Il répond « y » pour accepter la connexion.

Le nom d’utilisateur (demo) ayant été spécifié sur la ligne de commande, il n’est pas nécessaire de le saisir. Seul le mot de passe est demandé. Il est vérifié et la connexion est établie, présentant l’invite sftp>.

sftp demo@test.rebex.net

Les commandes FTP décrites précédemment fonctionnent de la même manière dans une session SFTP, avec les exceptions suivantes :

  • Pour supprimer un fichier, utilisez rm (FTP utilise delete)
  • Pour supprimer plusieurs fichiers, utilisez rm (FTP utilise mdelete)
  • Pour remonter d’un répertoire, utilisez cd .. (FTP utilise cdup)

Notre utilisateur a exécuté quelques commandes dans sa session SFTP. Il a utilisé ls pour lister les fichiers et cd pour naviguer dans le répertoire pub. Il a utilisé pwd pour voir le répertoire de travail actuel.

Il existe d’autres méthodes pour transférer des fichiers sous Linux, notamment scp (copie sécurisée), mais cet article se concentre sur FTP et SFTP. Ces deux commandes, utilisées dans des scénarios appropriés, répondront à vos besoins en matière de stockage et de récupération de fichiers.