Toon posts:

[php/bsd] Extern programma uitvoeren

Pagina: 1
Acties:
  • 197 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hoi,

Ik wil bijvoorbeeld /bin/ls uitvoeren vanuit PHP4 m.b.v. de backtick operator/system/passthru/exec/popen.
Dit lukt nu niet omdat httpd (apache 1.3) in chroot-mode draait onder openbsd.
Weet iemand hoe programma's buiten de "chroot jail" toch kunnen worden uitgevoerd?
Is een symlink voldoende, of moet het betreffende programma binnen de httpd omgeving worden gekopieerd?

Reden:
Ik wil uiteindelijk FFmpeg in batchmode uitvoeren vanuit PHP, en aangezien die afhankelijk is van allerlei libraries voorzie ik problemen...
Apache wil ik verder wel graag chrooted houden, dus opstarten zonder -u is geen optie.

Vooronderzoek:
HTTPD( 8 ), CHROOT( 2 ), httpd.apache.org, www.php.net en Absolute OpenBSD.

Bedankt.

[ Voor 2% gewijzigd door Verwijderd op 08-05-2005 15:14 . Reden: spontaan ontstane smiley weggeedit ]


  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op zondag 08 mei 2005 @ 15:11:
of moet het betreffende programma binnen de httpd omgeving worden gekopieerd?
^^

immers, je kan nooit buiten je root komen, met chroot verander je de root waardoor je totaal geen weet hebt van wat er buiten jouw root zich afspeeld :)

Verwijderd

Topicstarter
duidelijk..
enig idee of dat mogelijk is voor FFmpeg? (ik heb em nu als package)
moet ik em dan ter plaatse compilen, en make install achterwege laten ofzo?
ik kan er op de developer mailinglists van ffmpeg.org weinig tot niks over vinden
(en idd, ik ben een behoorlijke n00b op dit gebied)

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

mja, ik heb geen ervaring met FFmpeg, maar als je ervoor zorgt dat je hem of statisch compiled of alle libs meekopieerd moet het goed gaan.
Maar je zou ook voor een andere oplossing kunnen kijken, maar dat ligt dan vooral aan het doel wat je wilt bereiken, als het je alleen maar gaat om het bewerken van wat files zou je dit ook dmv een cronjob kunnen doen bijvoorbeeld (welke wordt getriggerd vanuit je php script door bijvoorbeeld een file aan te maken).

[ Voor 11% gewijzigd door Erkens op 08-05-2005 15:40 ]


  • MBV
  • Registratie: Februari 2002
  • Laatst online: 11:47

MBV

Waarom maak je geen perl of php command line scriptje? Of roep je een php binnen je chroot jail aan via de backticks die die beperking niet heeft :P (waarom deden we dat chroot ook al weer? O-) )

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

MBV schreef op zondag 08 mei 2005 @ 23:47:
Of roep je een php binnen je chroot jail aan via de backticks die die beperking niet heeft :P (waarom deden we dat chroot ook al weer? O-) )
en hoe denk je dat te gaan doen dan ;)

Verwijderd

Erkens schreef op maandag 09 mei 2005 @ 00:00:
[...]

en hoe denk je dat te gaan doen dan ;)
User substitution toestaan (chmod 7777 ofzo) voor het betreffende script.

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op maandag 09 mei 2005 @ 00:24:
[...]


User substitution toestaan (chmod 7777 ofzo) voor het betreffende script.
even een stukje uit de chmod manpage:
A numeric mode is from one to four octal digits (0-7), derived by adding up the bits with values 4, 2, and 1. Any omitted digits are assumed to be leading zeros. The first digit selects the set user ID (4) and set group ID (2) and save text image [`sticky'] (1) attributes. The second digit selects permissions for the user who owns the file: read (4), write (2), and execute (1); the third selects permissions for other users in the file's group, with the same values; and the fourth for other users not in the file's group, with the same values.
dit leert mij dat je met chmod 7777, enkel de user ID. group ID en de sticky bit extra zet op de "normale" rechten na, hiermee ga je (gelukkig) nooit uit je changed root komen ;)
eruit komen kan alleen als je binnen je huidige root je "oude" root of filesystem mount.

  • igmar
  • Registratie: April 2000
  • Laatst online: 31-01 23:50

igmar

ISO20022

Verwijderd schreef op maandag 09 mei 2005 @ 00:24:
User substitution toestaan (chmod 7777 ofzo) voor het betreffende script.
Misschien eens inlezen in wat chmod nu eigenlijk doet, en wat vooral een chroot() jail doet, voordat je dit soort dingen zegt ?

  • igmar
  • Registratie: April 2000
  • Laatst online: 31-01 23:50

igmar

ISO20022

MBV schreef op zondag 08 mei 2005 @ 23:47:
Waarom maak je geen perl of php command line scriptje? Of roep je een php binnen je chroot jail aan via de backticks die die beperking niet heeft :P (waarom deden we dat chroot ook al weer? O-) )
Lijkt me sterk, een chroot() geldt voor het gehele process, al zijn threads, en alle children. Als je geen root privs hebt is breaken uit een chroot() eigenlijk niet te doen,

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 11-02 15:35

Creepy

Tactical Espionage Splatterer

* Creepy moved ondertussen de discussie naar NOS ;)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1