Toon posts:

[PHP] permissies vraag

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik ben bezig met een script waarin ik online, via php, maildirs kan maken en deze op de goede user kan chownen en chmodden. Het scriptwerk is klaar echter zit ik met een probleem in de permissies.

Wat is het probleem?
Het probleem is dus dat apache als user 'apache' draait. Dit betekend dat hij niet overal dirs aanmag maken en deze al zeker niet mag chmodden of chownen omdat hij geen root is. Hier wil ik graag omheen zien te werken

Nu kan ik apache wel als root gaan draaien maar dat lijkt me heel erg gevaarlijk en daarom doe ik dat dus ook liever niet.

Weet iemand misschien hoe ik, op een veilige manier, toch dit script kan laten werken. Door middel van een php wrapper bijvoorbeeld.

Alvast bedankt :)

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 05-05 09:00

curry684

left part of the evil twins

Linux filesystem permissies in NOS houden aub :) Moved.

Professionele website nodig?


Verwijderd

Topicstarter
OINK

  • Eärendil
  • Registratie: Februari 2002
  • Laatst online: 08:48
Kijk hier eens naar:
http://httpd.apache.org/docs/suexec.html

suExec is een functie die je in Apache kan inbouwen om sommige scripts onder een ander uid te laten uitvoerer. Dit is mogelijk doordat Apache altijd gestart wordt als root, en er dus altijd een proces als root blijft draaien. Waarschijnlijk moet je wel Apache opnieuw copileren om het aan te zetten.

Verwijderd

Topicstarter
Klopt. Echter vind ik het niet verantwoord dit risico te nemen. Daar vroeg ik mij dus af of het ook anders kon :)

  • Eärendil
  • Registratie: Februari 2002
  • Laatst online: 08:48
Kan je mij uitleggen welk risico je bedoelt? Als jij in overal dirs wil aanmaken zal je wel een risico moeten nemen, suexec is er voor zover ik het heb begrepen voor gemaakt om dit risico zo klein mogelijk te houden.

  • igmar
  • Registratie: April 2000
  • Laatst online: 20-04 22:06

igmar

ISO20022

Eärendil schreef op 10 July 2003 @ 14:33:
Kan je mij uitleggen welk risico je bedoelt? Als jij in overal dirs wil aanmaken zal je wel een risico moeten nemen, suexec is er voor zover ik het heb begrepen voor gemaakt om dit risico zo klein mogelijk te houden.
suexec weigert scripts als root uit te voeren, dus aan deze optie heeft de TS niks.

  • twiekert
  • Registratie: Februari 2001
  • Laatst online: 28-04 13:56
ik heb hier ook wel eens kort over na lopen denken hoe je dit nou het beste kan doen. in de verre toekomst wil ik namelijk ook nog is zo'n alles manager gaan bouwen.

ik bedacht toen 2 mogelijke oplossingen.

1. apache als root draaien
das uiteraard niet zo best en toch een behoorlijk beveilings gat, je zal in ieder geval hiervoor een aparte webserver moeten draaien, en absoluut niet open laten staan.
dus een firewall ervoor met ip access en een htaccess op de script dir.

2. apache webserver + cronjob gebruiken
standaard apache webserver configuratie die de root operaties 'scheduled' in een database.
dan via een cronjob een PHP (CLI) / PERL script aanroepen die de opdrachten verifieerd op juistheid. en ze daarna uitvoerd. script checkt bijv. elke 5 minuten of er nieuwe opdrachten zijn.


dat is waar ik kort over nagedacht heb, of dit een goed idee moet je zelf ff bekijken. :)

Verwijderd

Wat je kan doen is PHP als SuExec draaien dmv de patch op www.localhost.nl of door gebruik te gaan maken van suphp (www.suphp.org). Zelf gebruik ik momenteel de laatste en werkt zeer prettig. Het grootste voordeel vind ik zelf dat HTTP_AUTH via apache nog gewoon werkt wat normaal niet het geval is wanneer PHP als CGI wordt gedraaid (in beide gevallen draai je namelijk PHP als CGI).

Bedenk echter wel dat wanneer je suphp gebruikt je alle programma's die bestanden kunnen aanmaken op je server onder het uid/gid van de gebruiker moet draaien aangezien er anders PHP scripts kunnen worden geupload onder een andere gebruiker. Wat weer de nodige security kwesties tot gevolg heeft.
Pagina: 1