
Het File Transfer Protocol is ouder dan de meeste van onze lezers, maar het gaat nog steeds goed. FTP heeft niet de beveiliging van een modern protocol, maar u moet het misschien toch gebruiken. Hier is hoe het te doen.
Waarschuwing: gebruik geen FTP via internet
Laten we dit vanaf het begin duidelijk maken: het File Transfer Protocol (FTP) dateert uit het begin van de jaren 70 en is geschreven zonder enige aandacht voor veiligheid. Het gebruikt nergens codering voor. Inloggegevens zoals uw gebruikersnaam en wachtwoord, evenals de gegevens die u downloadt of uploadt, worden in duidelijke tekst overgedragen. Iedereen onderweg kan uw geheimen inzien. FTP heeft echter nog steeds zijn toepassingen.
Als u bestanden overbrengt binnen uw netwerk, zou u veilig moeten zijn, zolang niemand op het netwerk pakketten snuffelt en gevoelige documenten afluistert terwijl u ze overbrengt. Als uw bestanden op geen enkele manier vertrouwelijk of gevoelig zijn, zou het prima moeten zijn om ze met FTP over uw interne netwerk te verplaatsen. Linux heeft de standaard ftp opdrachtregelprogramma om precies dat scenario aan te pakken.
Maar Vast en zeker gebruik de ftp opdracht om toegang te krijgen tot externe bronnen op internet. Gebruik daarvoor de sftp opdrachtregelprogramma, dat het beveiligde SSH File Transfer Protocol gebruikt. We introduceren beide programma’s in deze tutorial.
Bekijk de onderstaande schermafbeelding om duidelijk te maken waarom u FTP nooit via internet wilt gebruiken. Het toont het FTP-wachtwoord in platte tekst. Iedereen op uw netwerk of tussen u en de FTP-server op internet kan gemakkelijk zien dat het wachtwoord ‘MySecretPassword’ is.
Zonder de versleuteling zou een kwaadwillende actor ook bestanden kunnen wijzigen die u tijdens de overdracht downloadt of uploadt.

Het ftp Command
Ervan uitgaande dat u een geldig account op een FTP-site heeft, kunt u er verbinding mee maken met de volgende opdracht. Vervang in dit artikel het IP-adres in de opdrachten door het IP-adres van de FTP-server waarmee u verbinding maakt.
ftp 192.168.4.25
Waarschuwing: U mag alleen de ftp opdracht om verbinding te maken met servers op een vertrouwd lokaal netwerk. Gebruik de sftp commando, hieronder behandeld, voor het overbrengen van bestanden via internet.

De FTP-server reageert met een welkomstbericht. De bewoording van de begroeting varieert van server tot server. Vervolgens wordt gevraagd naar de gebruikersnaam van het account waarop u zich aanmeldt.
Merk op dat het IP-adres van de site waarmee u verbinding maakt, wordt weergegeven, gevolgd door uw Linux-gebruikersnaam. Als uw accountnaam op de FTP-server hetzelfde is als uw Linux-gebruikersnaam, drukt u gewoon op Enter. Dit zal uw Linux-gebruikersnaam gebruiken als de accountnaam op de FTP-server. Als uw Linux-gebruikersnaam en de FTP-accountnaam verschillen, typt u de gebruikersnaam van de FTP-account en drukt u op Enter.
Inloggen op de FTP-server
U wordt gevraagd uw wachtwoord voor de FTP-site in te voeren. Voer uw wachtwoord in en druk op Enter. Uw wachtwoord wordt niet op het scherm weergegeven. Als de combinatie van uw FTP-gebruikersnaam en wachtwoord is geverifieerd door de FTP-server, wordt u aangemeld bij de FTP-server.
U krijgt de ftp> prompt.

Rondkijken en bestanden ophalen
Allereerst wilt u waarschijnlijk een lijst van de bestanden op de FTP-server krijgen. De ls commando doet precies dat. Onze gebruiker ziet het bestand gc.c staat op de FTP-server en hij wil het downloaden naar zijn eigen computer. Zijn computer is de “lokale computer” in FTP-taalgebruik.
Het commando om een bestand op te halen (of “ophalen”) is get. Onze gebruiker geeft daarom het commando get gc.c. Ze typen get, een spatie en vervolgens de naam van het bestand dat ze willen ophalen.
De FTP-server reageert door het bestand over te brengen naar de lokale computer en te bevestigen dat de overdracht heeft plaatsgevonden. De grootte van het bestand en de tijd die het kostte om over te zetten, worden ook weergegeven.
ls
get gc.c

Om meerdere bestanden tegelijk op te halen, gebruikt u de mget (meerdere get) -opdracht. De mget commando zal u vragen om te bevestigen of u elk bestand beurtelings wilt downloaden. Reageer door op “y” te drukken voor ja en “n” voor nee.
Dit zou vervelend zijn voor een groot aantal bestanden. Daarom worden verzamelingen van gerelateerde bestanden meestal op ftp-sites opgeslagen als enkele tar.gz- of tar.bz2-bestanden.
VERWANT: Bestanden extraheren uit een .tar.gz- of .tar.bz2-bestand op Linux
mget *.c

Bestanden uploaden naar de FTP-server
Afhankelijk van de machtigingen die aan uw FTP-account zijn verleend, kunt u mogelijk bestanden uploaden (of “plaatsen”) naar de server. Om een bestand te uploaden, gebruikt u de put opdracht. In ons voorbeeld uploadt de gebruiker een bestand met de naam Songs.tar.gz naar de FTP-server.
put Songs.tar.gz

Zoals je waarschijnlijk verwacht, is er een commando om meerdere bestanden tegelijk op de FTP-server te zetten. Het heet mput (meerdere putten). Net als de mget commando deed, mput zal om een “y” of “n” bevestiging vragen voor het uploaden van elk bestand, één voor één.
Hetzelfde argument voor het plaatsen van sets bestanden in tar-archieven geldt voor het plaatsen van bestanden als voor het ophalen van bestanden. Onze gebruiker uploadt meerdere “.odt” -bestanden met het volgende commando:
mput *.odt

Directory’s maken en wijzigen
Als uw gebruikersaccount op de ftp-server het toestaat, kunt u wellicht mappen aanmaken. De opdracht om dit te doen is mkdir . Voor alle duidelijkheid: elke directory die u maakt met de mkdir commando wordt aangemaakt op de ftp-server en niet op uw lokale computer.
Om mappen op de ftp-server te wijzigen, gebruikt u de cd opdracht. Wanneer u de cd commando het ftp> prompt zal niet veranderen om uw nieuwe huidige directory weer te geven. De pwd (print working directory) commando zal je huidige directory tonen.
Onze ftp-gebruiker maakt een map met de naam muziek aan, gaat naar die nieuwe map en bevestigt waar ze zijn door de pwd commando uploadt vervolgens een bestand naar die map.
mkdir music
cd music
pwd
put songs.tar.gz

Om snel naar de bovenliggende directory van de huidige directory te gaan, gebruikt u de cdup opdracht.
cdup

Toegang tot de lokale computer
Om de directory op de lokale computer te wijzigen, kunt u de lcd commando op het ftp> prompt. Het is echter gemakkelijk om uit het oog te verliezen waar u zich bevindt in het lokale bestandssysteem. Een gemakkelijkere methode om toegang te krijgen tot het lokale bestandssysteem is om het ! opdracht.
De ! commando opent een shell-venster op de lokale computer. U kunt alles in deze shell doen wat u kunt in een standaard terminalvenster. Als je typt exit u keert terug naar de ftp> prompt.
Onze gebruiker heeft de ! commando en ging een shell-venster op de lokale computer in. Ze hebben een ls commando om te zien welke bestanden aanwezig zijn in die map en typ vervolgens exit om terug te keren naar de ftp> prompt.
!
ls
exit

Bestanden hernoemen
Om bestanden op de FTP-server te hernoemen, gebruikt u de rename opdracht. Hier hernoemt onze FTP-gebruiker een bestand met rename en gebruikt vervolgens de ls commando om de bestanden in de directory weer te geven.
rename songs.tar.gz rock_songs.tar.gz
ls

Bestanden verwijderen
Om bestanden op de FTP-server te verwijderen, gebruikt u de delete opdracht. Om meerdere bestanden tegelijk te verwijderen, gebruikt u de mdelete opdracht. U wordt gevraagd om een ”y” of “n” -bevestiging voor het verwijderen van elk bestand.
Hier heeft onze FTP-gebruiker de bestanden opgesomd om hun namen te zien en er vervolgens een gekozen om te verwijderen. Ze besluiten vervolgens om ze allemaal te verwijderen.
ls
delete gc.o
mdelete *.o

Met behulp van de sftp-opdracht
Lezers die bekend zijn met het IP-adressysteem zullen hebben gemerkt dat het 192.168-adres van de FTP-server dat in de bovenstaande voorbeelden wordt gebruikt, een intern IP-adres is, ook wel een privé IP-adres genoemd. Zoals we aan het begin van dit artikel waarschuwden, is de ftp commando mag alleen worden gebruikt op interne netwerken.
Als u verbinding wilt maken met een externe of openbare FTP-server, gebruikt u de sftp opdracht. Onze gebruiker gaat verbinding maken met een SFTP-account genaamd demo op de openbaar toegankelijke FTP-server op test.trebex.net.
Wanneer ze verbinding maken, worden ze geïnformeerd dat de verbinding tot stand is gebracht. Ze worden ook geïnformeerd dat de authenticiteit van de host niet kan worden geverifieerd. Dit is normaal voor de eerste verbinding met een nieuwe host. Ze drukken op “y” om de verbinding te accepteren.
Omdat de gebruikersnaam van de gebruikersaccount (demo) is doorgegeven op de opdrachtregel, wordt niet om de gebruikersnaam van het gebruikersaccount gevraagd. Ze worden alleen om het wachtwoord gevraagd. Dit wordt ingevoerd, geverifieerd en geaccepteerd en ze krijgen de sftp> prompt.
sftp demo@test.rebex.net

De FTP-opdrachten die we hierboven hebben beschreven, werken precies hetzelfde in een SFTP-sessie, met de volgende uitzonderingen.
- Gebruik om een bestand te verwijderen
rm(FTP gebruiktdelete) - Gebruik om meerdere bestanden te verwijderen
rm(FTP gebruiktmdelete) - Gebruik om naar de bovenliggende map te gaan
cd ..(FTP gebruiktcdup)
Onze gebruiker heeft een paar commando’s gebruikt in hun SFTP-sessie. Ze hebben gebruik ls om de bestanden weer te geven, en cd om naar de pub-directory te gaan. Ze hebben de pwd om de werkdirectory af te drukken.

Er zijn met name andere opties om bestanden in de Linux-wereld over te dragen scp (beveiligde kopie), maar we hebben ons hier gericht op FTP en SFTP. Gebruikt in de van toepassing zijnde scenario’s, zullen deze twee opdrachten u en uw behoeften op het gebied van opslag en ophalen van bestanden goed van pas komen.