[linux-l] RE: [linux-l] FTP-User und Script ausführender User gleich

Volker Grabsch vog at notjusthosting.com
Mi Aug 31 17:09:29 CEST 2005


On Wed, Aug 31, 2005 at 03:26:33PM +0200, Manuel Tennert wrote:
> > Der Fehler liegt bei den PHP-Scripten, der FTP- und
> > SSH-Zugang sollte unter dem "richtigen" Owner (d.h. dem
> > Account des Kunden) laufen. Aber die PHP-Scripte laufen unter
> > den Rechten des Webservers.
> 
> Also wenn ich per FTP Daten hochlade, so ist der eingestellte Besitzer web1,
> die eingestellte Nutzergruppe ftponly.

Das ist richtig. Und es ist gut so!

> Wenn ein PHP-Script läuft, so unter
> dem Besitzer wwwrun und als eingestellte Nutzergruppe www.

Das ist richtig. Aber das ist *nicht* gut!
*Alle* php-Scripte, und darüberhinaus der Apache selbst, laufen nämlich
als wwwrun/www ... was das für die Sicherheit im System bedeutet,
braucht man wohl nicht extra dazu sagen: Es gibt keine.

> Mir wäre es eigentlich lieber, wenn die Daten per FTP hochgeladen werden,
> dass dann die Daten den gleichen Besitzer und Usergruppe haben, als wenn ich
> per  ein Script ausführe.

Eben! Und das Problem musst du beim Script anpacken, nicht beim FTP. Das
FTP, das SSH, und so ziemlich jede andere Komponente des Systems wird
(korrekterweise) deinen Kunden als "web1/ftponly" behandeln.

> Ist es nicht möglich beim Login via FTP die
> Besitzerrechte dahingehend zu ändern?

Nein, das ist wiegesagt eine verdammt schlechte Idee.

> Ich habe auch gesehen, dass bei passwd
> Benutzergruppen und User angelegt sind. Kann ich hier nicht für FTP-User
> einfach eine anderen Besitzer und andere Benutzergruppe einstellen?

Sicher, über einige Umwege geht das. Und jeder Admin wird dich
auslachen, wenn er das sieht. Dann nämlich hast du noch mehr
Einfalls-Tore in dein System geöffnet, und deine Kunden können
sich *wirklich* uneingeschränkt gegenseitig ihre Dateien ansehen.

In diesem Fall lass alle Kunden am besten gleich als wwwrun/www
einloggen.  SCNR

> > Vorsicht allerdings bei der Umstellung. Du musst die
> > Datei-Besitzer und -Rechte ändern, von allen php-Scripten und
> > den von ihnen erzeugten Dateien. Außerdem konfigurierst du
> > "suphp" etwas anders: Du hast in deinen VirtualHosts und
> > deinen ".htaccess"-Dateien keine Befehle ala
> > "php_admin_value", sondern kannst stattdessen für jeden
> > VirtualHost ne eigene php.ini anlegen. Ich persönlich finde
> > das sogar besser so, aber es ist halt ne Datei mehr, und
> > etwas Umstellung, und kaum eine Howto geht darauf ein.
> 
> Was heißt das Modul verträgt sich nicht so gut mit dem normalen?

Das heißt, du solltest nur eines von beiden verwenden.
Theoretisch ist es zwar möglich, einige php-Dateien mit dem php-Modul,
und andere mit dem suphp-Modul zu verwenden, aber eben dieser Mix führt
zu Problemen.

Wenn, dann also das php-Modul komplett deaktivieren und das suphp-Modul
reinladen.

> Welche Probleme sind Dir dort bekannt? Welche Probleme könnte es mit
> Confixx geben?

Du musst deinen Apache umkonfigurieren. Das heißt, du musst einige
Konfigurations-Dateien des Apache umändern, damit das neue Modul
geladen wird. Und du musst eventuell einige Einträge in deine
VirtualHosts machen.

Dabei musst du aufpassen, dass du nicht ausversehen Dateien bearbeitest,
die Confixx automatisch überschreibt, sonst sind irgendwann plötzlich
aus unerfindlichen Gründen all deine Einstellungen wieder kaputt.
Ich sage nicht, dass es schwer ist, aber du musst eben aufpassen!


Auf dem Server von einem unserer Kunden läuft ein SuSE mit Confixx,
aber dort ist kein suphp installiert.

Auf unserem Firmen-Server läuft ein Debian mit Apache2. Und dort
habe ich vor ein paar Monaten das System auf suphp umgestellt. Das
war nicht ganz ohne. Und ich bin froh, dass bei uns kein Confixx
oder ähnliches mir die Arbeit nochmals unnötig erschwert hat.  ;-)

> >> Problem ist hierbei: es gibt wie erwähnt mehrere User, also müßte
> >> sich der Besitzer für den jeweiligen FTP-Login der hochgeladenen
> >> Daten entsprechend ändern.
> > 
> > Erklär das bitte mal genauer. Ich weiß nicht, was du meinst.
>  
> Ich kann auf dem Server doch mehrere User anlegen und den Usern Webspace
> zuweisen. So gibt es also zum Beispiel User web1, web2 usw.

Ja, genau. Und unter den Rechten dieser User (web1, web2, ...) sollten
auch deren php-Programme laufen.


Mit freundlichen Grüßen,

	Volker Grabsch

-- 
Volker Grabsch
---<<(())>>---
Administrator
NotJustHosting GbR



Mehr Informationen über die Mailingliste linux-l