Die meinsten Webspace-Anbieter haben dieses Problem so gelöst:
Das Homeverzeichnis (z.B. User3321) enthält ein cgi-bin Verzeichnis wie alle anderen User auch.
z.B. so
cgi --- hier sind die scripte
html --- die Webseite (.html, .php, usw.)
logs --- normale Logs
stats --- je nach Anbieter auch noch Statistiken
Wenn sich der Kunde einlogt kann er alles anschauen und uploaden. Wenn aber du dich in dein ftp-login einlogt siehst kannst du gleich die .html Dateien uploaden und brachst nicht noch ins html-Verzeichnis zu wechseln.
Jetzt zum Punkt:
Das mit dem cgi-bin-Verzeichnis wird über die Apache-Config gelöst. Genauso das Webverzeichnis der Apache weiss das bei diesem User die .html Dateien im html-Verzeichnis sind. Beim FTP ist es ein normales Home-Verzeichnis welches auf das ganze zugriff hat.
Was du machen musst:
Erstelle einen User (z.B. /home/user1 mit nologin) und füge 2 Verzeichnise hinein:
cgi-bin
html
Proftpd-config
- Code: Select all
ServerName "Linux-FTP-Server"
ServerType standalone
DefaultServer on
Port 21
Umask 022
MaxInstances 30
User nobody
DefaultRoot ~
<Directory />
AllowOverwrite on
</Directory>
Jetzt must du die Apache-Config anpassen (httpd.conf):
- Code: Select all
NameVirtualHost *:80
#User 1
<VirtualHost *:80>
ServerName localhost:80
DocumentRoot "/home/user1/html"
<Directory "/home/user1/html">
Order Allow,Deny
Allow from all
#Options All
AllowOverride All
</Directory>
<Location /cgi-bin>
AllowOverride None
Options +ExecCGI -Includes
SetHandler cgi-script
</Location>
</VirtualHost>
#User 2
<VirtualHost *:80>
ServerName site2.local:80
DocumentRoot "/home/user2/html"
<Directory "/home/user2/html">
Order Allow,Deny
Allow from all
#Options All
AllowOverride All
</Directory>
<Location /cgi-bin>
AllowOverride None
Options +ExecCGI -Includes
SetHandler cgi-script
</Location>
</VirtualHost>
Ich hoffe es klappt, reload oder neustarten nicht vergessen.
der ProFTP-User muss auf das Verzeichnis /home/user1, resp. user2 zugreifen. Wenn du dich einlogst solltest du 2 Verzeichnisse sehen.
Wenns nicht klappt bitte melde dich wieder.
Gruss Antivirus