PDA

Bekijk Volledige Versie : Suexec lijkt niet te worden aangeroepen



Freakingme
05/05/07, 20:13
Hallo,

Ik ben bezig een server te configureren met debian 4, PHP5 en apache 2.2. Omdat het een server wordt voor shared hosting, moet hier ook suexec op worden gecontroleerd. No big deal zou je denken, maar tot dusver weinig vooruitgang geboekt met suexec.

Ik heb userdir ingeschakeld. Nu heb ik twee users: user1 en user2.
In /home/user1/public_html/index.php staat een password in een variable + wat tekst die moet worden ge-echoed, heeft als eigenaar/group user1:user1, en is gechmod met 766.

In /home/user2/public_html/index.php staat <?php show_source('/home/user1/public_html/index.php'); ?> met als eigenaar/group user2:user2.

Nu zou het de bedoeling zijn, dat als ik naar /~user1/index.php browse, ik netjes en stukje geochoed krijg te zien, dit gebeurt niet, ik krijg een 403 Forbidden. Gelukkig, als ik naar /~user2/index.php ga, krijg ik gelukkig een error van php dat ie niet bij de bestanden van user1 kan.

In een shell kan user1 wel gewoon /home/user1/public_html/index.php lezen, maar user2 krijgt (gelukkig) een permission denied.

Dit alles lijkt er op dat suexec niet (goed) wordt geladen. Iemand enig idee hoe ik kan zien waar het fout gaat?

Freakingme

Hans
05/05/07, 20:42
Is het niet handig om in je index.php gewoon system("id"); aanroepen ? Dan weet je meteen of suexec z'n werk doet.

Als je trouwens /home/user1/public_html/index.php op 766 gezet hebt, dan zou iedereen erbij moeten kunnen. Inclusief user2 en de webserver. Nu je een 403 krijgt, denk ik dat je hem op bv. 760 heb gezet, waardoor noch user2 noch de webserver erbij kunnen :)

Freakingme
05/05/07, 20:59
Mjha, in feite is user1 eigenlijk 'dolf', en user2 is 'test':


dolf@hostdelight:~$ cat /home/dolf/public_html/index.php
<?php
$password = "dat niemand mag zien";
echo phpinfo();
echo "het wachtwoord in dit bestand mag niet gezien worden door andere users";
?>
dolf@hostdelight:~$ whoami
dolf
dolf@hostdelight:~$ ls -la public_html/
...
-rwxrw-rw- 1 dolf dolf 140 May 5 14:27 index.php
dolf@hostdelight:~$

En:

test@hostdelight:~$ cat /home/dolf/public_html/index.php
cat: /home/dolf/public_html/index.php: Permission denied
test@hostdelight:~$ whoami
test
test@hostdelight:~$


Verder heb ik dat system('id') even gedaan, en dan blijkt dat suexec idd niet goed wordt 'gedaan':

uid=33(www-data) gid=33(www-data) groups=33(www-data)

Verder nog dit:

hostdelight:/home/dolf# /usr/lib/apache2/suexec -V
-D AP_DOC_ROOT="/var/www"
-D AP_GID_MIN=100
-D AP_HTTPD_USER="www-data"
-D AP_LOG_EXEC="/var/log/apache2/suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=100
-D AP_USERDIR_SUFFIX="public_html"
hostdelight:/home/dolf#

Verder is de log van suexec leeg....

Na een kick in dit (http://www.webhostingtalk.nl/scripting-techniek-beveiliging/103250-mod_suid-2-mod_ruid-ervaringen-en-tips.html) topic, ben ik eens gaan kijken naar mod_ruid. Al snel kwam ik erachter dat dit beter is dan suexec, en ik kreeg het ook nog eens geconfigureerd in minder dan 10 minuten aan de hand van deze (http://websupport.sk/~stanojr/projects/mod_ruid/) tutorial..