Symlink folgen auf Dateien und Verzeichnisse im CGI Mod

Apache, Lighttpd, nginx, Cherokee
Post Reply
schluffi
Posts: 75
Joined: 2005-10-17 19:26
 

Symlink folgen auf Dateien und Verzeichnisse im CGI Mod

Post by schluffi »

Guten Morgen Community,

folgendes, unter der Plesk 7.5 Kunden-Web-Struktur auf einem Suse 9.3 Server gibts zum einen ja die Kundenverzeichnisse. Die liegen unter /home/httpd/vhosts/.
In diesem Ordner gibts dann noch ein typo3_src verzeichnis. In den Kunden verzeichnissen gibts einen Symlink auf das typo3_src verzeichniss. Dummerweise werden dann im typo3_src verzeichniss Dateien per Symlink nochmals weitergereicht. im prinzip also:
index.php -> tslib/index_ts.php

Mein Problem ist nun das SuPHP meint, target does not match UID. Sehr viel dazu gibts allerdings nicht zu finden aus dem man richtig schlau wird. Hab SuPHP mehrmal zu testzwecken kompiliert mit verschiedenen einstellungen wie --disable-checkpath oder --disable-checkuid

Mein vhost schaut so aus:

Code: Select all

<Directory /home/httpd/vhosts>
        Options +FollowSymLinks
</Directory>



<Directory /home/httpd/vhosts/kundenverzeichniss/httpdocs>
<IfModule sapi_apache2.c>
        suphp_Engine on
        AddHandler application/x-httpd-php .php .php3 .php4 .phtml
        php_admin_flag engine off
        #php_admin_flag engine on
        #php_admin_value open_basedir "/home/httpd/vhosts/kundenverzeichniss/httpdocs:/home/httpd/vhosts:/tmp"
</IfModule>
</Directory>
<Directory /home/httpd/vhosts>
        Options +FollowSymLinks
</Directory>
SuPHP Log

Code: Select all

[Tue Nov 01 16:30:22 2005] [error] UID of symbollink /home/httpd/vhosts/kundenverzeichniss/httpdocs/index.php does not match its target 
Jemand dazu ne kleine Hilfestellung parat?

Danke und Grüße Manfred
blnsnoopy26
Posts: 660
Joined: 2002-10-19 14:01
 

Re: Symlink folgen auf Dateien und Verzeichnisse im CGI Mod

Post by blnsnoopy26 »

Moin,

Das heisst das die Rechte nicht stimmen, daher diese fehlermeldung.
Ã?berprüfe die ownerrechte und passe sie ggf. an.

dein freund in diesem fall "chown"
schluffi
Posts: 75
Joined: 2005-10-17 19:26
 

Re: Symlink folgen auf Dateien und Verzeichnisse im CGI Mod

Post by schluffi »

Moin Du!

Ja, das ist klar. Das problem: userxx1 ist kunde 1, userxx2 ist Kunde 2, und welche rechte gebe ich jetzt den verlinkten Files?
Hab das schon probiert, geht auch bis auf einen weiteren Fehler:
Wenn im Ziel des Symlinks weitere Symlinks auf DATEIEN sind kommt ebenfalls zu diesem Fehler.

Die Lösung müsste also so aussehen: im typo3_src sollten alle Dateien und Ordner jemandem grösser 1000 gehören. SUPHP sollte allerdings nicht die UIDS vergleichen sondern in diesem einzelnen Fall sehen: Ziel > UID 100 dann machen. Nur wie bringe ich das suphp bei. --disable-checkuid oder --with-min-uid=100 scheinen hier nicht zu ziehen. Habe gerade so kompiliert:

Code: Select all

./configure --with-apxs=/usr/sbin/apxs2 --prefix=/usr/local --with-logfile=/var/log/apache2/suphp_log --with-min-uid=200 --with-min-gid=200
Allerdings Interessiert Ihn das jetzt noch recht wenig:

Code: Select all

[Wed Nov 02 08:25:11 2005] [error] UID of symbollink /home/httpd/vhosts/kunde1/httpdocs/index.php does not match its target
schluffi
Posts: 75
Joined: 2005-10-17 19:26
 

Re: Symlink folgen auf Dateien und Verzeichnisse im CGI Mod

Post by schluffi »

Hier noch die Directory

Code: Select all

<Directory "/home/httpd/vhosts">
        AllowOverride All
        #Options SymLinksIfOwnerMatch
        Options +FollowSymLinks
        Order allow,deny
        Allow from all
        php_admin_flag engine off
</Directory>
schluffi
Posts: 75
Joined: 2005-10-17 19:26
 

Re: Symlink folgen auf Dateien und Verzeichnisse im CGI Mod

Post by schluffi »

Moin!

Neue erkenntnis: Also Ordner die im Ziel des Symlinks liegen funktionieren. t3source hat psaadm:psaserv.
Was definitiv nicht geht ist die Index.php. Diese Datei liegt im httpdocs des kunden, ist ein Symlink index.php -> tslib/index_ts.php wobei das Ziel nicht im Kunden root sondern im t3source liegt. Das heisst die Datei wird praktisch 2 mal als symlink weitergegeben. Jetzt die Grosse Quizfrage:
Warum funktionieren Ordnersymlinks, aber keine file symlinks.

Grüße Manfred
blnsnoopy26
Posts: 660
Joined: 2002-10-19 14:01
 

Re: Symlink folgen auf Dateien und Verzeichnisse im CGI Mod

Post by blnsnoopy26 »

Die müssen alle den selben owner haben, dann geht das auch und um ein symlink zu überschreiben "man ln"

"ln -sf source ziel"
schluffi
Posts: 75
Joined: 2005-10-17 19:26
 

Re: Symlink folgen auf Dateien und Verzeichnisse im CGI Mod

Post by schluffi »

Ok Du hast natürlich recht. Ich glaube das was ich vorhabe geht so nicht. Um das ganze nochmals gedanklich durchzugehen:

Die Sourcen von typo3 sollen auf dem Server einmal existieren. Jeder kunde hat seinen eigenen User. Damit ist gewährleistet das Internetanwendung (Im CGI Modus) immer nur mit den rechten des jeweiligen Kundenaccounts ausgeführt werden.
Das mit dem Symlink funktioniert jetzt soweit. Der User darf die sourcen lesen und ausführen. Jetzt steht aber, dank der sicherheit das nächste problem ins Haus:

Kunde: userxx:psacln
Source: psaadm:psacln

In die eine richtung klappts ganz gut. Da die sourcen aber in den Kundenbereich zurückschreiben hat plötzlich der Kunde mit 755 keine rechte mehr in Verzeichnisse zu schreiben. Wird das auf 775 gestellt gehts wieder. Das kann aber nicht die Lösung sein da Typo3 sehr viel schreibt und aus Kundensicht heraus diese sachen auch veränden muss. Irgendwie bin ich jetzt vor den kopf geschlagen. Gibts da nen Workaround oder muss ich bei solchen sachen generell auf suphp verzichten und den Apache als Modphp4 laufen lassen? Problem hier ist dann halt das Typo3 mit url_fopen und safemod on nicht wirklich will.

Hmmm... ?

Grüße Manfred
blnsnoopy26
Posts: 660
Joined: 2002-10-19 14:01
 

Re: Symlink folgen auf Dateien und Verzeichnisse im CGI Mod

Post by blnsnoopy26 »

Hi,

Bei einfachen phpdateien oder textdateien reicht bei suphp auch rechte 644 aus. Aber daher ich von typo 3 nicht wirklich so viel Ahnung habe - kann ich da nur raten. aber generell, wenn es keine ausführbare datei ist reicht bei suphp rechte 644 und ordner 755.

Aber evtl. kann hier jemand genaueres sagen der sich mit Typo3 besser auskennt als ich. Evtl. noch mal die Doku zu typo3 lesen oder googeln, ob da irgendwo eine Lösung steht.

Viel glück weiterhin :wink:

p.s mod_php finde ich persönlich auch nicht so toll, daher man viele dateien dann rechte 777 geben muss - habe ich bei mir so festgestellt, daher setze ich bei mir überall suphp ein und fahre damit auch besser.
schluffi
Posts: 75
Joined: 2005-10-17 19:26
 

Re: Symlink folgen auf Dateien und Verzeichnisse im CGI Mod

Post by schluffi »

Stimmt. Das möchte ich auch ganz gerne so beibehalten.

Typo3 läuft unter suphp eigentlich ganz tadellos, solange die Sourcen und Userverzeichnisse unter einem Dokumentenroot gelagert sind (Solange halt immer alles mit dem gleichen benutzer ausgeführt wird) Friemelig wird das ganze eben Durch das trennen der Sourcen. Im prinzip sollte es so funktionieren das suphp die Sourcen mit dem Useraccount ebenfalls ausführt, egal ob im Userdokumentroot oder nicht. Ich denke es geht halt schon richtung suphp und leider nicht typo3.

Falls es ein ergebnis geben sollte geb ich bescheid, bzw wenn jemand anders sowas schonmal realisiert hat( muss ja nicht spezifisch typo3 sein) wäre ich für nen schubs in die richtige richtung dankbar.

Grüße Manfred
Post Reply