Okay, ich versuche hier, das grundlegende Setup eines Webhosting-Unternehmens zu replizieren, indem ich virtuelle Benutzer über SQL authentifiziere und sie in ihr Verzeichnis umleite/einsperre. Ich habe die meisten Ziele hier erreicht,mit Ausnahme der Umleitung/Sperre in ihr Verzeichnis.
Die Verzeichnisse werden in gespeichert /home/ftp
und das DefaultRoot
ist die Einstellung. Ich möchte, dass jeder einzelne Benutzer sein eigenes Verzeichnis hat und in diesem gesperrt wird. Es scheint, dass diese Einstellung homedir
in SQL keine Auswirkungen hat. Wenn Sie sich mit einem beliebigen Benutzer bei FTP anmelden, erfolgt die Anmeldung DefaultRoot
ohne Verzeichnissperrung oder Umleitung.
Wie erledige ich diese letzte Aufgabe?
Antwort1
Versuchen Sie, DefaultRoot auszukommentieren. Ich glaube, dass dies die aus dem Datenbank-Backend gelesenen Werte überschreiben könnte.
BEARBEITEN:
Wenn DefaultRoot und irgendetwas anderes als ~ festgelegt ist, wird der Benutzer in einem Baum gefangen gehalten, dessen Wurzel bei DefaultRoot liegt.
Wenn DefaultRoot ~ ist, wird der Benutzer in einem Baum gefangen gehalten, dessen Wurzel sein Home-Verzeichnis ist.
Antwort2
Wie sieht Ihre SQL-Konfiguration zusätzlich zur erwähnten Festlegung von DefaultRoot ~ aus – extrahieren Sie sie tatsächlich aus der Datenbank?
DefaultRoot ~
<IfModule mod_dso.c>
LoadModule mod_sql.c
LoadModule mod_sql_mysql.c
</IfModule>
SQLLogFile /var/log/proftpd/mod_sql.log
PersistentPasswd off
AuthPAM off
AuthUserFile /some/path/to/dummy/passwd.ftp
AuthGroupFile /some/path/to/dummy/group.ftp
AuthOrder mod_sql.c mod_auth_file.c
SQLConnectInfo proftpd@localhost:3306 userdatabase password
SQLAuthTypes Backend Crypt Plaintext OpenSSL
SQLUserInfo user user_id password NULL NULL ftp_homedir NULL
SQLAuthenticate users
SQLDefaultUID 14
SQLDefaultGID 50
SQLMinUserUID 13
SQLMinUserGID 49
Dies ist ein mehr oder weniger prägnantes Beispiel für eine 100%ige Authentifizierung aus der Datenbank und die Sperrung der Benutzer in ihrem in der Datenbank aufgeführten Home-Verzeichnis. Wenn Sie bei der Anmeldung auch ihr Home-Verzeichnis dynamisch erstellen möchten (nützlich, wenn Sie sie zu einer Datenbank hinzufügen und sich dafür nicht bei einem Server anmelden möchten), können Sie Folgendes hinzufügen:
CreateHome on dirmode 0755
...zur Konfiguration. Die beiden anderen oben aufgeführten Dummy-Dateien entsprechen Ihrer ProFTPd-Installation, die auf einem Red Hat/Centos-Server läuft:
passwd.ftp
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
gruppe.ftp
ftp:x:50:
nobody:x:99:
Dies führt dazu, dass Ihre virtuellen Benutzer unabhängig von ihrem Anmeldebenutzernamen eine UID/GID von 14:50 auf der Festplatte haben.