Dies ist eine alte Version des Dokuments!
Ein kleiner FTP Server für Linux.
sudo apt install vsftpd
Hauptkonfiguration unter
/etc/vsftpd.conf
local_enable=YES # Nutze lokale User write_enable=YES # Globales Schreiben erlauben, granularere Rechte via file system chroot_local_user=YES # Benutzer auf Homeverzeichnis beschränken
Um nur bestimmten Benutzern den Login via FTP zu erlauben, müssen folgende Optionen gesetzt werden:
userlist_deny=NO userlist_enable=YES userlist_file=/etc/vsftpd.user_list
vsftpd.user_list dient nur dazu, die Liste der lokalen User einzuschränken, zusätzliche Benutzer kann man damit nicht generieren.
Um bestimmten Benutzern den Login via FTP zu verbieten, müssen folgende Optionen gesetzt werden (In diesem Fall wird den restlichen Benutzern der Login gewährt):
userlist_deny=YES userlist_enable=YES userlist_file=/etc/vsftpd.user_list
Die Nutzer werden in beiden Fällen folgendermaßen in die Datei /etc/vsftpd.user_list eingetragen:
nutzer1 nutzer2 nutzer3
Möchte man nicht, dass die Benutzer auch via SSH auf den Rechner zugreifen können, so muss die Shell des Benutzers in der /etc/passwd auf /bin/false gesetzt werden. Zum Beispiel:
user:x:1000:1000::/srv/ftp/user:/bin/false
Wenn es danach Probleme beim FTP-Login geben sollte (530 Login incorrect), liegt das daran, dass /bin/false nicht als Shell im System hinterlegt ist. Dann muss die Shell noch in die Datei /etc/shells eingetragen werden.
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/private/vsftpd.pem
sudo tail -f /var/log/vsftpd.log
C:\Users\manuel>ftp 192.168.0.2 Verbindung mit 192.168.0.2 wurde hergestellt. 220 (vsFTPd 3.0.3) 200 Always in UTF8 mode. Benutzer (192.168.0.2:(none)): manuel 331 Please specify the password. Kennwort: ********** 230 Login successful. ftp> ftp> ftp> ftp> put Ubuntu.tar ftp> put test.mp4 ftp> ftp> ftp> ftp> dir 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. -rw------- 1 1000 1000 1426810880 Dec 14 18:29 Ubuntu.tar -rw------- 1 1000 1000 137062857 Dec 14 18:29 test.mp4 226 Directory send OK. FTP: 140 Bytes empfangen in 0.01Sekunden 28.00KB/s ftp> ftp> ftp> del Ubuntu.tar ftp> ftp> dir 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. -rw------- 1 1000 1000 137062857 Dec 14 18:33 test.mp4 226 Directory send OK. FTP: 70 Bytes empfangen in 0.00Sekunden 35.00KB/s ftp> ftp> ftp> rename test.mp4 test2.mp4 ftp> ftp> ftp> dir 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. -rw------- 1 1000 1000 137062857 Dec 14 18:33 test2.mp4 226 Directory send OK. FTP: 70 Bytes empfangen in 0.00Sekunden 35.00KB/s ftp> ftp> ftp> close 221 Goodbye. ftp> ftp> ftp> quit