Zum Inhalt springen

1 mal Source und x-mal Dummy

Erstellt am 27. April 2007 · 3 Antworten · letzte Antwort am 28. April 2007

Tags: Frage

droptix ·

Ich habe einen vServer (Debian mit Confixx). Ich möchte da gerne einmal das TYPO3-Source Paket für alle Benutzer bereit stellen. Jeder Benutzer soll die Möglichkeit haben, seinen "typo3_src" Symlink auf dieses Quellpaket zu linken.

Mir begegnen als Probleme die Apache-Direktiven "FollowSymLinks" und "FollowSymLinkIfOwnerMatch". Natürlich möchte ich verhindern, dass Benutzer Symlinks in andere Benutzerverzeichnisse setzen können. Daher schwebt mir vor, ein global verfügbares Verzeichnis zu erstellen, z.B. /home/www/typo3. Dort rein lege ich dann das Source-Paket typo3_src-4.1. Ich möchte allen Benutzern gestatten, Symlinks nach /home/www/typo3 zu setzen und natürlich auch überall dort hin, wo das Ziel des Symlinks auf eine Ressource zeigt, dessen Besitzer der Benutzer selbst ist -> eben "FollowSymLinkIfOwnerMatch".

Wie kann man ein Verzeichnis für alle verfügbar machen?

/var/www ist bei mir übrigens ein Symlink auf /home/www (Voreinstellung).

user667 ·

Hi droptix,

meine Lösung sieht so aus, dass

  • safe_mode on ist

  • die VHosts durch php_admin_value base_dir nur auf die (html|log|atd|files)-Verzeichnisse der einzelnen Benutzer und das typo3_src-Verzeichnis (/srv/www/htdocs/typo3/) zugreifen können

  • im safe_mode_exec_dir die Binaries durch SymLinks zur Verfügung gestellt werden, die von Typo3 gebraucht werden

Durch diese Config ist ein Zugriff auf SymLinks, die auf irgendwas ausserhalb ihres Verzeichnisses zeigen (abgesehen von den T3-Sourcen), nicht möglich.

Die Benutzerrechte der Sourcen sind so gesetzt, dass sie zwar lesbar, aber nicht beschreibbar sind. Somit können Extensions nicht global installiert werden.

Vielleicht bringt Dich das ja weiter...

Grüße user

droptix ·

Danke, für den groben Überblick ja. Hab's aber noch nicht vollständig verstanden und bin kein Linux-Profi, lediglich ein "erfahrener Anwender".

user667 schrieb

die VHosts durch php_admin_value base_dir nur auf die (html|log|atd|files)-Verzeichnisse der einzelnen Benutzer und das typo3_src-Verzeichnis (/srv/www/htdocs/typo3/) zugreifen können

Sagt mir aktuell gar nichts. Wo und was genau hast du eingestellt?

user667 schrieb

im safe_mode_exec_dir die Binaries durch SymLinks zur Verfügung gestellt werden

safe_mode_exec_dir steht bei mir zurzeit auf no value. TYPO3 läuft aber als Installation in einem Benutzerverzeichnis einwandfrei. Welche Binaries meinst du genau, z.B. GraphicsMagick? Welchen Wert hat dein safe_mode_exec_dir und welche Binaries hast du verlinkt?

user667 schrieb

Die Benutzerrechte der Sourcen sind so gesetzt, dass sie zwar lesbar, aber nicht beschreibbar sind.

Meinst du die Rechte des TYPO3 Source-Pakets? Also chmod 0x755? Wer ist der Besitzer? "FollowSymLinkIfOwnerMatch" dürfte ja abblocken, wenn das Source-Paket dem Benutzer root gehören würde und in einem 403-Fehler enden. Bei mir läuft PHP mittels suexec und FastCGI unter den Rechten des jeweiligen Benutzers und nicht als www-data.

user667 ·
droptix schrieb

Danke, für den groben Überblick ja. Hab's aber noch nicht vollständig verstanden und bin kein Linux-Profi, lediglich ein "erfahrener Anwender".

Genauso würde ich mich auch bezeichnen... 😉

droptix schrieb
user667 schrieb

die VHosts durch php_admin_value base_dir nur auf die (html|log|atd|files)-Verzeichnisse der einzelnen Benutzer und das typo3_src-Verzeichnis (/srv/www/htdocs/typo3/) zugreifen können

Sagt mir aktuell gar nichts. Wo und was genau hast du eingestellt?

Es gibt die Möglichkeit als Administrator in Confixx sog. httpd-Spezial Einträge für Benutzer anzulegen. Hier habe ich die Standardeinstellungen für die VHosts überschrieben. Bei mir sehen die Einträge so aus:

ServerAdmin mail@domain.de
php_admin_value safe_mode on
php_admin_value safe_mode_gid on
php_admin_value safe_mode_include_dir /srv/www/htdocs/smexec/
php_admin_value safe_mode_exec_dir /srv/www/htdocs/smexec/
php_admin_value open_basedir /srv/www/htdocs/web**/html/:/srv/www/htdocs/web**/phptmp/:/srv/www/htdocs/web**/files/:/srv/www/htdocs/web**/atd/:/srv/www/htdocs/typo3/
<Directory "/srv/www/htdocs/web**/html">
       AllowOverride All
       Options +FollowSymLinks
</Directory>
droptix schrieb
user667 schrieb

im safe_mode_exec_dir die Binaries durch SymLinks zur Verfügung gestellt werden

safe_mode_exec_dir steht bei mir zurzeit auf no value. TYPO3 läuft aber als Installation in einem Benutzerverzeichnis einwandfrei. Welche Binaries meinst du genau, z.B. GraphicsMagick? Welchen Wert hat dein safe_mode_exec_dir und welche Binaries hast du verlinkt?

Du musst safe_mode nicht anschalten, ich finde es gibt mir aber zusätzliche Sicherheit. Wenn Du hier im Forum mal nach safe_mode suchst, wirst realtiv viele Posts finden. Es gibt wohl immer noch viele, die Schwierigkeiten damit haben.

Schaltest Du ihn an, kann PHP nicht mehr direkt auf /usr/bin und andere zugreifen. Damit ist dann GraficsMagick/ImageMagick erst mal nicht mehr verfügbar und Typo3 läuft nicht einwandfrei. Dafür gibt es die Direktive safe_mode_exec_dir. Hier gibst Du das Verzeichnis an, in dem Du die Binaries zur Verfügung stellst, die Typo3 benötigt, und zwar durch SymLinks (so habs ich gemacht). Bei mir ist das eine ganze Liste (tar, diff, identify, convert, composite (<- die letzten 3 sind von ImageMagick), tidy, aspell, htmldoc, pdfinfo, pdftotext, unzip, usw.).

droptix schrieb
user667 schrieb

Die Benutzerrechte der Sourcen sind so gesetzt, dass sie zwar lesbar, aber nicht beschreibbar sind.

Meinst du die Rechte des TYPO3 Source-Pakets? Also chmod 0x755? Wer ist der Besitzer? "FollowSymLinkIfOwnerMatch" dürfte ja abblocken, wenn das Source-Paket dem Benutzer root gehören würde und in einem 403-Fehler enden. Bei mir läuft PHP mittels suexec und FastCGI unter den Rechten des jeweiligen Benutzers und nicht als www-data.

Ja, die ganzen Typo3-Sourcen. Bei mir gehören sie "root:www" und ein chmod -R 750 habe ich gemacht. Apache darf sie lesen und ausführen, aber nicht schreiben.

Bezgl. suexec und fast-cgi kann ich Dir nichts sagen, da ich damit keinerlei Erfahrungen habe. Hört sich jedoch gut an, dass PHP die Rechte der Nutzer erhält. Das ist bei mir nämlich noch so ein kleines Problem...sollte ich mir vielleicht mal näher ansehen.

Es gibt bestimmt auch andere Lösungen...Vielleicht gibt es ja noch andere Vorschläge hier aus dem Forum?

Grüße user