Ćwiczenia do wykonania:
- Zainstaluj lftp.
- Połącz się z serwerem vsftpd
- Stwórz katalog i skopiuj do niego dowolny plik ze swojego komputera, z którego łączysz się do serwera vsftpd.
Zainstaluj lftp
SLES
Aby zainstalować lftp wpisz:
# odśwież repozytoria
sudo zypper ref
# zainstaluj lftp
sudo zypper -n in lftp
Debian
Aby zainstalować lftp wpisz:
# odśwież repozytoria
sudo apt update
# zainstaluj lftp
sudo apt -y install lftp
Red Hat
Aby zainstalować lftp wpisz:
# zainstaluj lftp
sudo yum install lftp -y
or
sudo dnf install lftp -y
Jak działa lftp
LFTP obsługuje zarówno FTP z włączonym SSL, jak i bez niego. Domyślnie próbuje łączyć się za pomocą SSL.
Można to obejść na dwa sposoby. Na serwerze vsftpd włączyć obsługę trybu pasywnego FTP, co zostało opisane w artykule na stemat konfiguracji vsftpd, lub też połączyć się w następujący sposób:
lftp -e "set ftp:ssl-allow off;" -u username adres_IP_serwera_lub_hostname
Można też edytować plik lftp.conf
sudo vim /etc/lftp.conf
i dopisać do niego dyrektywę:
set ftp:ssl-allow false
Pamiętaj, aby logować się przy pomocy użytkownika, który został utworzony na serwerze FTP.
Co to jest tryb pasywny/aktywny podczas połączenia przez FTP oraz jakie problemy mogą wystąpić?
Więcej informacji znajdziesz tutaj:
Obsługa klienta lfpt - podstawowe polecenia
# pokaż bieżący katalog na serwerze FTP
lftp ftp1@10.10.0.2:~> pwd
ftp://ftp1@10.10.0.2
# pokaż bieżący katalog na lokalnym serwerze
lftp ftp1@10.10.0.2:~> !pwd
/home/redhat
# pokaż pliki w bieżącym katalogu na serwerze FTP
lftp ftp1@10.10.0.2:~> ls
drwxr-xr-x 2 1000 1000 23 Dec 19 01:33 public_html
-rw-r--r-- 1 1000 1000 399 Dec 20 16:32 test.py
# pokaż pliki w bieżącym katalogu na lokalnym serwerze
lftp ftp1@10.10.0.2:~> !ls -l
total 12
-rw-rw-r-- 1 redhat redhat 10 Dec 20 14:30 redhat.txt
-rw-rw-r-- 1 redhat redhat 10 Dec 20 14:59 test2.txt
-rw-rw-r-- 1 redhat redhat 10 Dec 20 14:59 test.txt
# Zmień katalog
lftp ftp1@10.10.0.2:~> cd public_html
lftp ftp1@10.10.0.2:~/public_html> pwd
ftp://ftp1@10.10.0.2/%2Fhome/ftp1/public_html
# prześlik plik na serwer
# "-a" oznacza tryb ascii ( domyślnym trybem jest binarny)
lftp ftp1@10.10.0.2:~> put -a redhat.txt
22 bytes transferred
Total 2 files transferred
lftp ftp1@10.10.0.2:~> ls
drwxr-xr-x 2 1000 1000 23 Dec 19 01:33 public_html
-rw-r--r-- 1 1000 1000 10 Dec 20 17:01 redhat.txt
-rw-r--r-- 1 1000 1000 399 Dec 20 16:32 test.py
-rw-r--r-- 1 1000 1000 10 Dec 20 17:01 test.txt
# prześlij kilka plików na serwer FTP
lftp ftp1@10.10.0.2:~> mput -a test.txt test2.txt
22 bytes transferred
Total 2 files transferred
lftp ftp1@10.10.0.2:~> ls
drwxr-xr-x 2 1000 1000 23 Dec 19 01:33 public_html
-rw-r--r-- 1 1000 1000 399 Dec 20 16:32 test.py
-rw-r--r-- 1 1000 1000 10 Dec 20 17:06 test.txt
-rw-r--r-- 1 1000 1000 10 Dec 20 17:06 test2.txt
# pobierz plik z serwera ftp do lokalnego systemu plików
# "-a" oznacza tryb ascii ( domyślnym trybem jest binarny)
lftp ftp1@10.10.0.2:~> get -a test.py
416 bytes transferred
# pobierz kilka plików z serwera FTP do lokalnego systemu plików
lftp ftp1@10.10.0.2:~> mget -a test.txt test2.txt
20 bytes transferred
Total 2 files transferred
# uwórz katalog w bieżacym katalogu na serwerze FTP
lftp ftp1@10.10.0.2:~> mkdir testdir
mkdir ok, `testdir' created
lftp ftp1@10.10.0.2:~> ls
drwxr-xr-x 2 1000 1000 23 Dec 19 01:33 public_html
-rw-r--r-- 1 1000 1000 399 Dec 20 16:32 test.py
-rw-r--r-- 1 1000 1000 10 Dec 20 17:06 test.txt
-rw-r--r-- 1 1000 1000 10 Dec 20 17:06 test2.txt
drwxr-xr-x 2 1000 1000 6 Dec 20 17:16 testdir
226 Directory send OK.
# usuń katalog w bieżącym katalogu na serwerze FTP
lftp ftp1@10.10.0.2:~> rmdir testdir
rmdir ok, `testdir' removed
lftp ftp1@10.10.0.2:~> ls
drwxr-xr-x 2 1000 1000 23 Dec 19 01:33 public_html
-rw-r--r-- 1 1000 1000 399 Dec 20 16:32 test.py
-rw-r--r-- 1 1000 1000 10 Dec 20 17:06 test.txt
-rw-r--r-- 1 1000 1000 10 Dec 20 17:06 test2.txt
# usuń plik na serwerze FTP
lftp ftp1@10.10.0.2:~> rm test2.txt
rm ok, `test2.txt' removed
lftp ftp1@10.10.0.2:~> ls
drwxr-xr-x 2 1000 1000 23 Dec 19 01:33 public_html
-rw-r--r-- 1 1000 1000 399 Dec 20 16:32 test.py
-rw-r--r-- 1 1000 1000 10 Dec 20 17:06 test.txt
# usuń niektóre pliki na serwerze FTP
lftp ftp1@10.10.0.2:~> mrm redhat.txt test.txt
rm ok, 2 files removed
lftp ftp1@10.10.0.2:~> ls
drwxr-xr-x 2 1000 1000 23 Dec 19 01:33 public_html
# wykonaj polecenia za pomocą "![command]"
lftp ftp1@10.10.0.2:~> !cat /etc/passwd
root❌0:0:root:/root:/bin/bash
bin❌1:1:bin:/bin:/sbin/nologin
...
...
ftp1❌1001:1001::/home/ftp1:/bin/bash
# rozłącz się
lftp ftp1@10.10.0.2:~> quit
221 Goodbye.