Hat man einen Webserver auf Apache-Basis möchte man diesen auch mit ftp-Zugang erreichen. Dazu legen wir als erstes einen neuen User an und deaktivieren die shell, damit kein login via ssh möglich ist und weisen ihm den Zielordner zu.
sudo adduser ftpklaus -shell /bin/false -home /var/www/
Als FTP-Server verwende ich vsftpd welches einfach über die Paketquellen installiert werden kann:
sudo apt-get install vsftpd
Damit der Nutzer auch schreiben kann, muss die config-Datei von vsftp angepasst werden. Wichtig ist, dass die folgenden drei Parameter aktiv sind:
listen=YES
local_enable=YES
write_enable=YES
Das bedeutet, dass der Server aktiv ist, dass jeder mit einem Account auf dem Server sich mit den selben Daten einloggen kann und zuletzt, dass er auch Schreibrechte hat (ist meist default deaktiviert).
Zur Erhöhung der Sicherheit kann der Zugriff des ftp-users auf Verzeichnisse außerhalb seines Home-Verzeichnisses gesperrt werden. Dazu müssen folgende Zeilen in der config ergänzt werden:
chroot_local_user=YES
allow_writeable_chroot=YES
Ohne den zweiten Parameter würde ein Login fehlschlagen, da laut den Zugriffsregeln von chroot keine Schreibrechte gesetzt sein dürfen.
Für einen erfolgreichen login muss noch die Datei /etc/pam.d/vsftpd bearbeitet werden und folgende letzte Zeile auskommentiert werden mit einer #
#auth required pam_shells.so
Zum Abschluss noch ein Restart des FTP-Servers mit
sudo /etc/init.d/vsftpd restart
Damit der Nutzer auch Dateien modifizieren kann, muss er Schreibrechte im Ordner /var/www besitzen. Meistens gehört diese Gruppe root oder www-data. Wir können den Nutzer zur Grupppe www-data hinzufügen mit
sudo adduser ftpklaus www-data
Alternativ kann man auch den gesamten www-Ordner dem User ftpklaus übertragen:
sudo chown -R ftpklaus:ftpklaus /var/www
Viel Spass und Stay Tuned
Støertebeker
Schreibe einen Kommentar
Du musst angemeldet sein, um einen Kommentar abzugeben.