Ich habe gelesen, dass per Standard sich alle Systemuser per FTP anmelden können. Es muss also ein neuer Benutzer angelegt werden, dem dann als Homeverzeichnis das Webverzeichnis zugewiesen wird. Außerdem sollte man die Login-Shell auf /bin/false setzen, damit der Benutzer sich nur über FTP anmelden kann. Setzt man die Anmelde-Shell auf /bin/bash kann sich der Benutzer auch über die Konsole (SSH, Telnet, …) anmelden.
So weit, so gut… Doch wie legt man nun einen neuen Benutzer an? Die komfortabelste Möglichkeit ist über YaST. Dort gibt es schließlich auch die „Verwaltung von Benutzer und Gruppen„. Zu finden im YaST-Kontrollzentrum unter „Sicherheit und Benutzer“ -> „Benutzer bearbeiten und anlegen„. Wenn man dort einen Benutzer hinzufügt (ALT + E), kann man nach dem erfolgreichem Eintrag den Benutzer bearbeiten (ALT + R) und über die Details (ALT + D) weitere wichtige Einstellungen vornehmen. Ich habe herausgefunden, dass es für meinen ProFTPD 1.3.1 Server extrem wichtig ist, dass die Benutzerkennung (UID) überhalb 10.000 liegt. Die von Plesk angelegten Haupt-FTP-Accounts für meine beiden Domains haben nämlich die UID 10001 und 10002. Ich habe daher meinem neuen FTP-Account die UID 10003 zugewiesen.
Als Home-Verzeichnis habe ich /srv/www/vhosts/partyspielchen.de/httpdocs angegeben, um direkt im HTML-Index-Verzeichnis meiner Domain www.partyspielchen.de zu landen. Als Standardgruppe habe ich psacln angegeben (weil Plesk den anderen FTP-Accounts auch diese Gruppe zugewiesen hat). Man kann auch ruhig die Standardgruppe ftp (und sicherlich noch andere) verwenden.
Nachdem ich diese Einstellungen gemacht hatte, habe ich die „Verwaltung von Benutzern und Gruppen“ beendet (ALT + B).
Erst durch das Beenden werden die neuen Konfigurationen gespeichert.
Et voila. Es funktioniert:
[R] 220 ProFTPD 1.3.1 Server (ProFTPD) [85.214.18.115]
[R] USER neuer_benutzername
[R] 331 Password required for neuer_benutzername
[R] PASS (hidden)
[R] 230 User neuer_benutzername logged in
Das ganze lässt sich auch mit einem Kommando in der Kommandozeile realisieren:
useradd -u 10003 -g ftp -d /srv/www/vhosts/partyspielchen.de/httpdocs -s /bin/false -c Kommentar neuer_benutzername
Danach müsste man nur noch ein Passwort für den Benutzer definieren. Wenn man wissen möchte, welche Funktionen der Befehl „useradd“ noch bietet, kann man das durch die eingabe von „man useradd“ herausfinden. Hat man „man useradd“ gelesen, kann man dieses „Manual“ wieder mit der Taste „q“ verlassen.
Möchte man übrigens die Einstellungen von „useradd“ ändern, benötigt man den Befehl „usermod“.
So kann man beispielsweise das Homeverzeichnis und die Login-Shell ändern:
usermod -s /bin/bash -d /das/neue/verzeichnis -m neuer_benutzername
Der Parameter „-m“ steht für „An anderen Speicherort verschieben“, so wird das alte Homeverzeichnis (und dessen Berechtigungen) ins neue Verzeichnis übernommen.
Übrigens, die Konfigurationsdatei von ProFTPd findet man unter /etc/proftpd.conf (in neueren Distributionen auch unter /etc/proftpd/proftpd.conf).
P.S. Bei der Umwandlung eines „normalen“ Webverzeichnisses in ein Benutzer Home-Verzeichnis kann es passieren, dass die CHMOD-Rechte des Ordners auf „750“ gestellt werden und von außen nicht mehr öffentlich zugänglich sind. In meinem Fall ist das beim Ordner „httpdocs“ passiert, wodurch ich meine Domain (www.partyspielchen.de) nicht mehr über einen Webbrowser aufrufen konnte. Es erschien HTTP-Error 403. Abhilfe schafft man, indem man die Rechte des betroffenen Ordner wieder auf „755“ setzt. Am besten macht man das als root-User über einen SFTP-Client (vorzugsweise WinSCP).
Ein Gedanke zu „FTP-Account / Linux-Benutzer einrichten für ProFTPD“