Zum einfachen Upload sämtlicher Dateien sollte auf einem Webserver kein FTP Zugang fehlen. Dazu richten wir in diesem Teil einen solchen FTP Server mit Zugang auf dem Pi ein.
Dieses Tutorial kann auch zum einfachen Austauschen von Dateien zwischen PC und Raspberry benutzt werden und ist nicht zwingendermaßen für einen Webserver.
Zunächst die Installation
sudo apt-get install proftpd
Kurz danach wird man nach der Startvariante gefragt. Hier wählen wir standalone (auf Deutsch Servermodus)
Im Grunde wären wir hier bereits fertig, allerdings hätte jetzt jeder Nutzer nur Zugriff auf sein eigenes Home Verzeichnis (z.B. /home/pi ). Deshalb erstellen wir einen neuen User. Dazu wechseln wir erst einmal das Verzeichnis.
cd /etc/proftpd/
Hier soll der virtuelle Benutzer erstellt werden. Im folgenden Beispiel erstelle ich den Benutzer tutorials mit dem Homevezeichnis /var/www/ (falls das Rootverzeichnis von Apache geändert wurde, sollte dies natürlich angepasst werden. Gleiches gilt, wenn ein FTP-User auf andere Verzeichnisse Zugriff haben soll).
sudo ftpasswd --passwd --name tutorials --gid 33
--uid 33
--home /var/www/ --shell /bin/false
Nun nur noch das Passwort eingeben und bestätigen. Falls das Passwort des Benutzers zu einem späteren Zeitpunkt geändert werden soll, einfach wieder in das Verzeichnis wechseln und den Befehl erneut ausführen.
Um den virtuellen User noch freizuschalten, bearbeiten wir die Konfigurationsdatei
sudo nano /etc/proftpd/proftpd.conf
und fügen folgenden Code am Ende ein:
DefaultRoot ~
AuthOrder mod_auth_file.c mod_auth_unix.c
AuthUserFile /etc/proftpd/ftpd.passwd
AuthPAM off
RequireValidShell off
Mittels STRG + O und STRG + X speichern und beenden wir den Editor.
Zu guter letzt starten wir den Server neu und probieren es aus.
sudo /etc/init.d/proftpd restart
Möglicherweise kann man sich nun noch trotzdem noch nicht einloggen, da entsprechende Rechte fehlen, diese setzen wir mit
chmod g+s /var/www
chmod 775 /var/www
(falls ein anderes Verzeichnis dem User zugewiesen wurde, muss es natürlich entsprechend angepasst werden)
Im nächsten Tutorial machen wir den Server auch von außerhalb des Netzwerkes erreichbar, mittels No-IP.
28 Kommentare
mein Verzeichnis ist media/Raspberry/webserver
aber dass mit dem benutzer erstellen krieg ich nicht hin
es kommt immer die Meldung:
unknown option: media
ftpasswd: –passwd: missing required argument: –home
Hast du mal versucht den kompletten Pfad anzugeben (beginnend mit / ) ?
nur keks hier, lern doch erstma die basics bevor du irgendetwas reißen willst. Schaffst ja nicht mal ein fertigen Befehl für deine Forderungen anzupassen…
Ich kenn mich da nicht so gut aus.
Könntest du mir vielleicht de richtigen Befehl hier schicken?
Wäre sehr nett
LG Davrad
Ich kenne dein (absolutes) Verzeichnis nicht. Wechsel mal dort hinein (mit
cd
) und gibpwd
ein. Dadurch solltest du den Pfad bekommen, den du im Befehl verwenden kannst.Hallo Felix 🙂
Ich habe das Problem, dass Bilder auf der erstellten Seite nicht angezeigt werden. Ich habe ein .html Ordner erstellt und alles was ich bekomme ist nur die Überschrift und ein kleiner kasten in dem das Bild sein sollte. Hab den Pfad und .png richtig angegeben, jedoch passiert auch nach mehreren Versuchen nichts. Habe es auch schon mit php Versucht, mit dem selben Ergebnis. Können die ftp://raspberrypi/ Seiten keine Bild-Dateien anzeigen?
hey,
ich kann bei mir diesen schritt nicht ausführen: sudo /etc/init.d/proftpd restart
bei mir kommt dann das:
pi@raspberrypi:/etc/proftpd $ sudo /etc/init.d/proftpd restart
[….] Restarting proftpd (via systemctl): proftpd.serviceJob for proftpd.service failed. See ’systemctl status proftpd.service‘ and ‚journalctl -xn‘ for details.
failed!
wass muss ich tun damits fuktioniert und was habe ich falsch gemacht?
LG
Potti
Da scheint etwas schief gelaufen zu sein. Was du machen sollst, um mehr Infos dazu zu bekommen steht auch dabei:
Hey,
Ich habe das selbe Problem und die Infos aus ’systemctl status proftpd.service‘ verraten nicht viel. Sonst noch einen Lösungsansatz :/
Um schreibrechte zu haben musste ich noch:
sudo chown -R www-data:www-data /var/www
ausführen
fuktioniert, danke für das Addendum
Bitte noch oben ergänzen. Es lesen nicht alle die Kommentare
Danke! Das funktioniert bei mir sehr gut!
Wie ist der Port von dem FTP-Server?
Ich bin draufgekommen. Der Port ist 21 und man kann ihn in der Datei: proftpd.conf verändern.
Trotzdem Danke!
Hallo,
ich weis nicht warum aber auf meinem pi1 läuft alles super auf dem pi3 garnicht immer wieder dieser fatal error mit dem AuthOrder.
— Unit proftpd.service has begun starting up.
Jul 14 15:05:26 raspberrypi proftpd[1344]: Starting ftp server: proftpd2018-07-14 15:05:26,812 raspberrypi proftpd[1352]: fatal: AuthOrder: AuthOrder has alr
Jul 14 15:05:26 raspberrypi proftpd[1344]: failed!
Jul 14 15:05:26 raspberrypi systemd[1]: proftpd.service: Control process exited, code=exited status=1
Jul 14 15:05:26 raspberrypi systemd[1]: Failed to start LSB: Starts ProFTPD daemon.
— Subject: Unit proftpd.service has failed
— Defined-By: systemd
— Support: https://www.debian.org/support
—
— Unit proftpd.service has failed.
Nun habe ich mal beide proftpd.conf verglichen und als ich aus
mod_auth_unix.c -> modauth_unix.c
gemacht habe lief es sofort.
was habe ich da falsch gemacht?
Hallo,
also ich habe alle Schritte soweit durchgeführt ich seh auch die Seite, ich kann mich nur nicht mit dem Benutzer anmelden. Das einloggen funktioniert nicht.
Hallo Dominik,
ich hatte gerade eben das selbe Problem. Die Ursache war, dass der Code, der in die Konfigurationsdatei „proftpd.conf“ eingefügt werden soll bei mir nicht gespeichert wurde.
Du kannst das Überprüfen wenn du die Datei nach dem Abspeichern nochmals öffnest. Sollte der folgende Code den du am Ende noch angefügt hast nicht darin enthalten sein, wurde es bei dir auch nicht gespeichert. Anders als beschrieben muss du nach dem Einfügen von:
DefaultRoot ~
AuthOrder mod_auth_file.c mod_auth_unix.c
AuthUserFile /etc/proftpd/ftpd.passwd
AuthPAM off
RequireValidShell off
Strg+O -> DANN DIE ENTER TASTE DRÜCKEN -> Strg+X
Dann war es bei mir erst richtig übernommen worden.
Hello Hello,
look at my P*orno http://catcut.net/Czvw
Hi,
Server läuft prima – nur wie bekomme ich ein Verzeichnis der externe Platte eingebunden ? – die SD Karte ist ja ratzfatz voll…
Danke
af
Hallo, fast alles funktioniert wie beschrieben.
Nur hat der ftp-Nutzer keine Schreibrechte im Verzeichnis ?
Führ einfach mal
sudo chown -R www-data:www-data /var/www
aus, so wie da.gloa es beschrieben hat ;-DHallo,
bei mir funktioniert der erste Schritt [sudo apt-get install proftpd].
Danach kommt aber garnichts. D.h. ich der Befehl wird ausgeführt, aber kein Fenseer oder sonstwas öffnet sich.
Wie soll ich jetzt die Startvariante auswählen? Kann man das irgendwie manuell in einem File ändern?
Das ist egal, mach einfach mit den nächsten Schritten weiter.
Irgendwas funktioniert bei mir nicht die ganze Zeit kommt das: chmod: Beim Setzen der Zugriffsrechte für „/var/www“: Die Operation ist nicht erlaubt
Hallo schöne Anleitung jeddoch habe ich auch das problem mit dem Schreibrecht habe auch schon was hier in den Kommentaren steht ausprobiert hat aber leider nicht geholfen
Kann mir jemand nochmal einen Lösungsweg erklären ?
Ok hat sich erledigt hat noch einen ordner html in /var/www und daruf hatte ich vergessen den zugriff zuzulassen
Hallo Felix, erstmal danke für die Anleitung, aber ich hab eine Frage. Bei mir fragt der FTP – Server, wenn ich über Firefox darauf zugreife, jedesmal eine PAsswortabfrage, wenn ich in einen Ordner wechsle oder eine Datei aufrufe. KAnn man das irgendwie abstellen, dass man entweder gar kein PAsswort braucht, oder aber nur einmal am Anfang?
Danke,
Moritz
also bei mir klappt das weder so nich so mit den rechten….. installiert hat er alles nur ich komme nicht drauf. wenn ich die rechte geben will kommt immer das:
pi@raspberrypi:/etc/proftpd $ pwd
/etc/proftpd
pi@raspberrypi:/etc/proftpd $ sudo chown -R www-data:www-data /var/www
chown: cannot access ‚/var/www‘: No such file or directory
pi@raspberrypi:/etc/proftpd $ sudo nano /etc/proftpd/proftpd.conf
pi@raspberrypi:/etc/proftpd $ chown -R www-data:www-data /var/www
chown: cannot access ‚/var/www‘: No such file or directory
pi@raspberrypi:/etc/proftpd $ chown -R www-data:www-data /http/var/www
chown: cannot access ‚/http/var/www‘: No such file or directory
pi@raspberrypi:/etc/proftpd $ chown -R www-data:www-data http/var/www
chown: cannot access ‚http/var/www‘: No such file or directory
ich habe echt keine ahnung warum
die cofig hat er in der datei auch übernommen…. also es ist quasi alles so wie es soll