Toon posts:

[php] run scriptje php apache

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo..

Ik wil graag een scriptje kunnen uitvoeren vanaf een apache webserver m.b.v. php ....
het probleem is dat de output van het script wel gegeven wordt.. maar het commando is niet daadwerkelijk uitgevoerd
het lijkt alleen zo vanwege die misleidende output :?

<?
$scriptje = shell_exec("/etc/doe-eens-iets");
echo "$scriptje";
?>

iemand enig idee .....

  • Grum
  • Registratie: Juni 2001
  • Niet online
wat is de output ? :)

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 21:31

Janoz

Moderator Devschuur®

!litemod

Er is wel output, maar het scriptje is niet uitgevoerd?? .. Waar baseer je op dat het scriptje niet is uitgevoerd?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Foutmeldingen?
Zet anders even het error report op full.
[edit] met error_reporting(E_ALL) geloof ik

Verwijderd

Topicstarter
ik laat met het script de policies op Accept zetten voor iptables. Als ik op de command line bv intype: iptables -L
dan laat hij zien hoe de policies er op dit moment bijstaan. als ik dit script handmatig uitvoer dan zet hij alle policies op Accept. maar als ik het via php doet laat hij alleen de output zien dat: "alle policies op accept zijn gezet." :?

Verwijderd

apache draait standaard op nobody, en die mag niet aan iptables zitten...

  • Grum
  • Registratie: Juni 2001
  • Niet online
weet je zeker dat de output van iptables -L naar stdout gaat en niet bv naar stderr ?

Verwijderd

Topicstarter
Op woensdag 06 maart 2002 21:40 schreef Grum het volgende:
weet je zeker dat de output van iptables -L naar stdout gaat en niet bv naar stderr ?
hoe kan ik dit controleren ?

Verwijderd

Topicstarter
Op woensdag 06 maart 2002 21:40 schreef fladder het volgende:
apache draait standaard op nobody, en die mag niet aan iptables zitten...
Dat zou best wel eens kunnen daarom heb ik de inhoud van het test scriptje even veranderd naar : cp index.php test.php

maar helaas dit wordt ook niet uitgevoerd, ik denk dat er iets anders mis gaat..

Verwijderd

Topicstarter
wat ook nog een probleem is hier bij is het volgende

<?
$test=shell_exec("ls -al");
echo "$test";
?>

probleem is dat de output allemaal aan elkaar vast is gemaakt i.p.v. losse regels in variabele $test
hoe krijg ik het nu voor elkaar zodat de output net lijkt op de output zoals ik die zal krijgen op de linux console.

  • RdeTuinman
  • Registratie: Mei 2001
  • Laatst online: 16-08 07:25
Op woensdag 06 maart 2002 21:51 schreef dmaster het volgende:

Dat zou best wel eens kunnen daarom heb ik de inhoud van het test scriptje even veranderd naar : cp index.php test.php

maar helaas dit wordt ook niet uitgevoerd, ik denk dat er iets anders mis gaat..
Ik denk dat jij niet helemaal begrijpt wat er bedoelt wordt. Apache draait waarschijnlijk onder de user nobody. Om de iptables te mogen aanpassen moet je user root zijn. En user nobody != user root. Daarom worden de iptables niet aangepast door jouw scriptje.
hoe krijg ik het nu voor elkaar zodat de output net lijkt op de output zoals ik die zal krijgen op de linux console
PHP:
1
<?$test=shell_exec("ls -al");echo nl2br($test);?>

Verwijderd

Topicstarter
Op woensdag 06 maart 2002 23:05 schreef RdeTuinman het volgende:

[..]

Ik denk dat jij niet helemaal begrijpt wat er bedoelt wordt. Apache draait waarschijnlijk onder de user nobody. Om de iptables te mogen aanpassen moet je user root zijn. En user nobody != user root. Daarom worden de iptables niet aangepast door jouw scriptje.
[..]
PHP:
1
<?$test=shell_exec("ls -al");echo nl2br($test);?>
Ik snap wat er bedoeld word met user nobody en iptables.. daarom heb ik een ander voorbeeld gebruikt namelijk een copy actie bij uitvoeren van het scriptje moet nu een file worden aangemaakt.. maar ook hierbij werkt het niet (of ligt dit soms ook aan de user nobody :? )

  • Tjark
  • Registratie: Juni 2000
  • Laatst online: 10-09 10:25

Tjark

DON'T PANIC

[b]Op donderdag 07 maart 2002 09:21 schreef dmaster het volgende:[/b
[..] ik een ander voorbeeld gebruikt namelijk een copy actie bij uitvoeren van het scriptje moet nu een file worden aangemaakt..
Wat is het nu? Kopieer je iets of maak je een file aan?
Wat zijn de rechten van de directory (en file) waarheen je die file wil kopieren of aanmaken?

*insert signature here


Verwijderd

Topicstarter
Op donderdag 07 maart 2002 09:28 schreef TjarkVerhoeven het volgende:

[..]

Wat is het nu? Kopieer je iets of maak je een file aan?
Wat zijn de rechten van de directory (en file) waarheen je die file wil kopieren of aanmaken?
Ik copieer een bestaande file naar een nieuwe file..
ik zal eens proberen als het wel werkt als ik de te copieren file alle rechten geef 777

Verwijderd

Topicstarter
<?
$test=shell_exec("ls -al");echo nl2br($test);
?>

dit stukkie php code werkt prima om de output mooier op het scherm te krijgen. is het nu ook mogelijk dat de kolommen nu ook mooi onder elkaar kan laten komen het is nu bijna voor elkaar.. zoals met een table of iets dergelijks ?

nu ziet het er nog zo uit:

-rw-rwxr-- 1 dmaster wwwdev 21 Jun 20 2001 Gast.php
-rw-rwxrw- 1 dmaster wwwdev 67436 Jun 22 2001 Guestbook.dat
-rw-rwxr-- 1 dmaster wwwdev 717 Jun 14 2001 Testing Scripts.htm
drw-rwxr-x 5 dmaster wwwdev 4096 Jun 14 2001 Testing Scripts_files

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 09-09 14:51

thomaske

» » » » » »

Op donderdag 07 maart 2002 09:51 schreef dmaster het volgende:

dit stukkie php code werkt prima om de output mooier op het scherm te krijgen. is het nu ook mogelijk dat de kolommen nu ook mooi onder elkaar kan laten komen het is nu bijna voor elkaar.. zoals met een table of iets dergelijks ?
PHP:
1
<?$test=shell_exec("ls -al");echo "<PRE>$test</PRE>";?>

dit zou moeten werken..

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Verwijderd

Topicstarter
Op donderdag 07 maart 2002 09:56 schreef thomaske het volgende:

[..]
PHP:
1
<?$test=shell_exec("ls -al");echo "<PRE>$test</PRE>";?>

dit zou moeten werken..
Thnx allemaal .. ik ben er uit ..
inderdaad ligt het aan de rechten dat het script niet wordt uitgevoerd...

is het mogelijk om alsnog iptables te benaderen met de nobody user ? of wat is een gangbare oplossing ? suggesties ?

  • eek
  • Registratie: Februari 2001
  • Laatst online: 06-04-2020

eek

@MagickNET

$scriptje = shell_exec("/etc/doe-eens-iets 2>&1");

dit zorgt ervoor dat stderr naar stdout geplakt wordt.

Skill is when luck becomes a habit.


Verwijderd

Op donderdag 07 maart 2002 10:12 schreef dmaster het volgende:
is het mogelijk om alsnog iptables te benaderen met de nobody user ? of wat is een gangbare oplossing ? suggesties ?
Paar opties
• stiekum een apache als root draaien op een ander poortje
• bouw een daemon-proggie die draait als root en luistert naar een connectie op een bepaald poortje (op localhost ofcourse) die dan dat scriptje uitvoert. Via php kun je dan op dat poortje connecten
• maak je scriptje suid root
• doe het gewoon lekker met de hand, of at boot time.
• bouw een proggie dat uitgevoerd wordt door de crond en dat uit een database of tekstbestand haalt wat het moet doen. Met je php kun je dan in die db of in dat tekstbestand schrijven

Je ziet het al, genoeg mogelijkheden. Tijd om creatief te gaan denken zoals het een goede programmeur beaamt :)

  • Grum
  • Registratie: Juni 2001
  • Niet online
sudo! :) kan handig zijn voor dit soort dingen :)
Pagina: 1