[linux-l] Webspace und SFTP - Die Herausforderung

Thomas Schmidt belug at thomasschmidt.com
Do Sep 27 13:16:34 CEST 2007


Hallo Liste!

Es geht um einen Webserver, auf den auch Freunde mal Webseiten hochladen 
können.

PHP-Scripte erstellen ihre Dateien immer mit dem Besitzer, unter dem der 
PHP-Server gestartet wurde. Und solange nicht der Apache als Root läuft 
und jeden PHP-Interpreter als externes Programm mit Userrechten aufruft, 
ist dieser Besitzer immer www-data.

Ohne Klimmzüge mit PHP als CGI und Apache mit Suexec gehört also jede 
von PHP erstellte Datei www-data.

Jetzt komme ich zum Anliegen. Einem FTP-Server würde ich sagen, dass 
sich alle User als www-data mit ihrem Webspace als Rootverzeichnis 
einloggen. Nur leider wurde ein analoges Programm für SFTP wohl noch 
nicht erfunden. Scponly und rssh brauchen erstmal einen sinnlosen 
Dateibaum im chroot-Verzeichnis. Den könnte scponly dynamisch anbieten, 
aber das tut es nicht.

Zusammenfassung: Die Webseiten gehören alle dem selben Benutzer, weil 
Apache üblicherweise so läuft, deshalb kann man den Webspacekunden nicht 
einfach SSH-Logins geben.
Es gibt auch keinen vernünftigen SFTP-Server, der einfach nach Angabe 
des Wunsch-Rootverzeichnisses funktioniert.

Jetzt habe ich gerade noch eine Idee: Und zwar wird der Webspace jedes 
Kunden in sein Home abgebildet, und zwar dort mit seinem persönlichen 
User und seiner Gruppe. Der Kunde bekommt dann einen vollen SSH-Zugang 
und kann den gesamten wahren Webspacebereich nicht betreten. Kann man so 
etwas mit mount anstellen? Also mount /var/www/kunde1/ /home/kunde1/www/ 
www-user:www-user->kunde1:kunden

Eigentlich müsste der Apache standardmäßig Scripte als der Benutzer 
ausführen, denen das Script gehört, und openssh müsste chroot auf 
Knopfdruck beherrschen. Da das aber nicht der Fall ist, was haltet ihr 
von meiner Idee und wie kann man das am Geschicktesten umsetzen?

Viele Grüße von
Thomas




Mehr Informationen über die Mailingliste linux-l