Umzugsplanung, dazu einige Fragen

s24!

Registered User
Hallo ServerSupportForum,

vorab: Ich bin in meine Aufgabe als Serveradministrator eher reingeschliddert und musste viel in kurzer Zeit lernen. Daher weiß ich vielleicht noch nicht alles so ganz perfekt, ich hoffe, ich bin mittlerweile in der Lage, die Situation konkret genug zu erläutern.

Geplant ist, ca. 500 vHosts umzuziehen auf einen anderen vServer. Der aktuelle vServer rennt mit apache2-prefork, mod_php und SysCP. Der Rest ist vermutlich erstmal irrelevant. Auf dem neuen Server sollen apache2-worker, mod_fcgid und Froxlor laufen. Folgende Probleme sehe ich auf mich zukommen:
- Es gibt (wie es bei mod_php halt so ist) Dateien, die www-data gehören. Mit mod_fcgid dürfte das ein ziemliches Problem werden, oder? Das könnte man durch chown natürlich ändern - aber warum genau das wohl nicht geht erläutere ich später.
- Wenn ich es richtig sehe, lädt mod_fcgid bei 500 vHosts auch 500 mal PHP in den Speicher. Das dürfte bei 4 GB RAM schnell zur Apokalypse führen. Was tun?

Nun zum Rechteproblem, zu welchem ich erstmal einige Fakten schildere. Wir nehmen uns einen realen User heraus und nennen ihn für diesen Zweck mal "web123".
Wenn sich web123 auf seinen FTP einloggt, sieht er einen Ordner: "downloads". Dieser gehört laut Filezilla dem User "web123" und der Gruppe "web123". Soweit alles super.
Ein ls -la /var/customers/webs/web123/ zeigt uns aber: Der Ordner "downloads" gehört User "65533" und Gruppe "65533". Also quasi niemandem, denn die uid/gid ist laut ftp_users in der Datenbank eigentlich eine ganz andere, nennen wir sie 1234. Wenn ich chown -R 1234:1234 /var/customers/webs/web123/ ausführe, sieht der User in Filezilla als Besitzergruppe allerdings nur noch ein "?".
Was ist da los? Wenn mir das irgendwer irgendwer erklären kann, bin ich wirklich sehr dankbar.

Und wenn das irgendwer für wenig Geld (ich (wir) verdiene(n) kein Geld mit dem Projekt, es ist ein Hobby, daher können wir uns größere Summen nicht leisten) machen würde - ich sage da nicht nein. :)


Vielen Dank im Voraus!



Grüße
 
Geplant ist, ca. 500 vHosts umzuziehen auf einen anderen vServer.
Sicher wieder ein vServer für 500 vHosts?

- Wenn ich es richtig sehe, lädt mod_fcgid bei 500 vHosts auch 500 mal PHP in den Speicher. Das dürfte bei 4 GB RAM schnell zur Apokalypse führen. Was tun?
Siehe:
Also ich würde CGI nehmen. Aber da scheiden sich die Geister.

Nun zum Rechteproblem [...] Wenn mir das irgendwer irgendwer erklären kann, bin ich wirklich sehr dankbar.
Ohne dass du nähere Angaben zum FTP-Server gemacht hast, tippe ich stark darauf, dass proftpd-mysql läuft.
Das Ganze läuft dann auch nur über einen echten Systembenutzer. Der Rest ist "vorgetäuscht". D.h. dass web123 gar kein Systembenutzer ist und dies nur über den FTP-Client so angezeigt wird. Wenn du ein "ls -al" im Hosting-Verzeichnis machen würdest, würdest du auch feststellen, dass alle Verzeichnisse aller User dem gleichen User und der gleiche Gruppe gehören.
So löst du das Problem:
Mache ein chown für alle vHost-Verzeichnisse über den Haupt-Systemuser (über den der FTP-Server läuft). Im FTP-Client wird es dann schon "richtig" (mit User web123 etc) angezeigt.
Problem der ganzen Geschichte:
Wenn man die einzelnen Hosts nicht mittels open_basedir nicht in ihr Verzeichnis sperrt, haben alle FTP-User Zugriff auf Verzeichnisse aller FTP-User.
Da du auf CGI oder FastCGI wechseln willst, was theoretisch auch eine gute Idee ist, musst du bedenken, dass die open_basedir mittels vHost-Einstellung nicht mehr greifen werden. Entweder für jeden Host eine eigene php.ini oder PHP Patchen. Siehe hierzu:

Viel Erfolg.
 
Mache ein chown für alle vHost-Verzeichnisse über den Haupt-Systemuser (über den der FTP-Server läuft). Im FTP-Client wird es dann schon "richtig" (mit User web123 etc) angezeigt.
Dass im System auch der richtige Benutzer angezeigt wird kannst du nss-mysql benutzen welcher die Benutzer mittels MySQL-Datenbank statt /etc/passwd verwaltet und diesen an deine bestehende Datenbank knuefen.
 
Ich vergaß hinzuzufügen, dass PHP (egal ob CGI oder fcgi) dann natürlich auch entsprechend mit dem User und der Gruppe laufen muss, mit welcher der FTP-Server derzeit läuft.
 
Hallo,
danke für die Antworten. Es ist korrekt, dass proftpd-mysql läuft. Auch soll es wieder ein vServer werden (4 GB RAM). Aber das ist ja momentan nichtmals mein Hauptproblem; ich will die Rechte in den Griff kriegen bevor ich das ganze System umziehe...

Also ich würde CGI nehmen. Aber da scheiden sich die Geister.
Das kommt eigentlich nicht in Frage, da für jeden Request ein neuer Prozess geforkt wird. Ohne es getestet zu haben vermute ich, dass das die Performance für den einzelnen User ziemlich runterziehen würde. Momentan ist unser System ziemlich schnell, für mich käme auch durchaus ein prefork-ähnlicher MPM der SuExec-Funktionalität hat (ihr versteht?) in Betracht - leider konnte ich mich da noch nicht so wirklich reinarbeiten. Empfehlungen? :)
Zudem gibt es ja auch mods wie mod_ruid - aber wie läuft das dann damit? Ihr merkt, ich kenne wirklich nur das aktuelle System und hab in diesem Fall nichtmals konkrete Ansätze.
Es gibt scheinbar so viele Möglichkeiten neben dem "Standard" mod_fcgid + SuExec - aber wie ich genau was kombinieren kann ist mir schleierhaft...

Das Ganze läuft dann auch nur über einen echten Systembenutzer. Der Rest ist "vorgetäuscht". D.h. dass web123 gar kein Systembenutzer ist und dies nur über den FTP-Client so angezeigt wird.
Ist mir bekannt. Ich habe vielleicht vergessen zu erwähnen, dass ich das aktuelle System schon recht gut im Griff habe und dieses auch kenne. Auch das Rechteproblem ist (da Löschen, bearbeiten etc. funktioniert) momentan eher ein Schönheitsmakel. Es zeigt aber, dass dort was nicht rund läuft und ich denke halt, dass dies in Zukunft Probleme bereiten wird.

Wenn du ein "ls -al" im Hosting-Verzeichnis machen würdest, würdest du auch feststellen, dass alle Verzeichnisse aller User dem gleichen User und der gleiche Gruppe gehören.
Dem ist nicht so... Dort stehen jeweils die entsprechende uid/gid aus der FTP-Tabelle als Besitzer. Hier stimmen diese Einträge auch tatsächlich alle, die Probleme mit 65533 als Besitzer fangen erst in den Userverzeichnissen an.

Mache ein chown für alle vHost-Verzeichnisse über den Haupt-Systemuser (über den der FTP-Server läuft). Im FTP-Client wird es dann schon "richtig" (mit User web123 etc) angezeigt.
Wenn ich chown proftpd:nogroup (genau so läuft FTP) /var/customers/webs/web123/index.php ausführe, gehört index.php laut Filezilla dem User "rigo" (das sagt mir gar nichts, so heißt hier auch niemand) und als Gruppe wird mal wieder ein Fragezeichen angezeigt.

Wenn man die einzelnen Hosts nicht mittels open_basedir nicht in ihr Verzeichnis sperrt, haben alle FTP-User Zugriff auf Verzeichnisse aller FTP-User.
Die User sind eingesperrt. Wäre ja sonst recht riskant. :D

Da du auf CGI oder FastCGI wechseln willst, was theoretisch auch eine gute Idee ist, musst du bedenken, dass die open_basedir mittels vHost-Einstellung nicht mehr greifen werden.
... Und noch ein Problem mehr ;) Dessen war ich mir aber schon bewusst, zukünftig sollte es eigene php.ini-Files geben. Darum kümmere ich mich, wenn es soweit ist. Danke. :)

Dass im System auch der richtige Benutzer angezeigt wird kannst du nss-mysql benutzen
Wenn ich das richtig verstehe, hat das eine rein optische Wirkung. Richtig? Dann wäre das für mich unwichtig, danke trotzdem! :)

Ich vergaß hinzuzufügen, dass PHP (egal ob CGI oder fcgi) dann natürlich auch entsprechend mit dem User und der Gruppe laufen muss, mit welcher der FTP-Server derzeit läuft.
Das klingt nicht kompliziert. Irre ich mich?


Eure Beiträge haben mich zum weiteren Ausprobieren angeregt. Ich bin ein Stückchen weitergekommen. Denken wir uns den User "ruhrpott" (welcher tatsächlich exisitiert ;)).
Der User ruhrpott hat einen FTP-Account "ruhrpott" und einen FTP-Account "ruhrpottftp1" - und um diesen geht es jetzt. Denn dieser User hat nur Zugriff auf "/var/customers/webs/ruhrpott/uploads". Der User hat vor einiger Zeit Dateien hochgeladen, welche im Dateisystem 65533:65533 gehörten und laut Filezilla "ruhrpottftp1" und dem "?". Nun habe ich gerade folgendes herausgefunden: Wenn ich chown sage, er möge Gruppe & User zu 531 ändern (das wäre laut DB richtig), kriege ich in Filezilla als Besitzer "hixx" (diesen User gibt es - ich habe nur leider keine Ahnung, warum er auf 531 hört!) und als Gruppe nach wie vor das Fragezeichen angezeigt. Wenn ich aber chown 65533:531 mache, sagt Filezilla: ruhrpottftp1 / ruhrpott. Zum Test habe ich 531 durch einen anderen SysCP-FTP-User ersetzt und siehe da: Er wird richtig angezeigt. ("ruhrpottftp1 / andererUser").
Im Falle von chown -R 65533:531 /var/customers/webs/ruhrpott/uploads stimmen auch die Rechte super, mit chmod 700 kann ich als ruhrpottftp1 alles tun was ich will.
Ob das Problem damit im Ansatz oder gar nicht gelöst ist, muss ich später prüfen. Denn es ist nach wie vor komisch, dass es User gibt, die als Gruppe und User im Dateisystem nicht "65533" stehen haben und trotzdem keine Rechteprobleme haben und sich selbst im FTP als User & Gruppe angezeigt kriegen.

In jedem Fall vielen vielen Dank nochmal an euch!


Grüße
 
Back
Top