Toon posts:

[PHP] Webbased service restarten

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

Verwijderd

Topicstarter
Met PHP probeer ik een Linux (CENTOS 4.*) service te restarten.

Het te uitvoeren commando is: "service nagios restart"

Met de PHP functie shell_exec kan ik enkel commando's als "ls -l" etc. uitvoeren.

Heeft iemand enig idee hoe dit op te lossen is?

Ik ben zelf server admin dus er mag op root niveau gewerkt worden.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12:26

Janoz

Moderator Devschuur®

!litemod

Zeer waarschijnlijk heeft het php script niet dezelfde enviroment vars als de commandline. PATH zal dus wel niet bekend zijn. Probeer eens een volledig pad mee te geven bij het aanroepen van het service commando.

Daarnaast zou het ook al erg helpen wanneer je ook een foutmelding gaf. Die is vast wel ergens in het log van je webserver terug te vinden.

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


Verwijderd

Geef het volledige pad op naar de binary die geexecute moet worden.

Verwijderd

Draait je apache ook als root?

Verwijderd

Topicstarter
Apache draait niet als root, maar als apache.

Zou ik user apache root rechten kunnen geven?

  • MetalfanBlackness
  • Registratie: Oktober 2001
  • Niet online

MetalfanBlackness

♥ PV & SB ♥

Dat kan natuurlijk wel, maar de vraag is of dit wenselijk is.

Solarboiler: Top Senz 200 Nero-3 ⣿⣿ Photovoltaics: 9x LG 320N1K-A5, SE 3000H


  • teh_twisted
  • Registratie: Oktober 2005
  • Laatst online: 30-07-2025
wat je beter kan doen is php een shell script laten aanroepen die zichzelf root maakt dmv sudo oid, ipv apache root rechten geven en 't direct vanaf de site aanteroepen... beetje security risk. de shell script op -r-x, anders hebbie alsnog een security issue... liefst zelfs alleen execute maar weet niet zeker of dat werkt...

Tyan S7025, 1x Xeon E5520, 32GB DDR3-1333 ECC/REG, GTX275 896MB, 2x Samsung SM 2243SN, Logitech Perf MX. Laptop: MBP 10,1/6,2. Cams: Canon EOS600D+Tamron AF18-200, Sony W350. Gadgets: iPad 64GB 3G, iPhone 5 64GB, PS1-3. Auto: W211 E220CDI


Verwijderd

Topicstarter
Om het geheel even te testen heb ik user apache toegevoegd bij de group root. Het bestand /etc/group ziet er op de eerste regel als volgt uit:

code:
1
root:x:0:root,apache


zoals je ziet heb ik apache erbij gevoegd, is dat een correcte wijze?

Zo niet, hoe kan ik user apache even alle root rechten geven.

Security redenen spelen tijdelijk geen rol omdat de server slechts lokaal draait en enkel voor mij van dienst is.

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

teh_twisted schreef op woensdag 06 december 2006 @ 09:10:
liefst zelfs alleen execute maar weet niet zeker of dat werkt...
dat kan nooit werken omdat je de inhoud niet kan lezen ;)
Verwijderd schreef op woensdag 06 december 2006 @ 10:11:
Zo niet, hoe kan ik user apache even alle root rechten geven.
in je httpd.conf aangeven dat apache moet draaien als user 'root' ipv 'apache'

Verwijderd

Topicstarter
Bedankt voor de reactie.

Zodra ik in httpd.conf het spul aanpas wil httpd niet meer starten.

Is het niet gewoon mogelijk om user en des noods ook de group apache gewoon alle rechten te geven die het root account ook heeft.

Dan functioneerd alles lekker en kan ik mijn scriptjes even testen zegmaar... :D

  • Rac-On
  • Registratie: November 2003
  • Niet online
apache als root laten draaien is redelijk het toppunt van evilheid.. betere oplossing is dan bijv je php script ergens een file laten droppen en vanuit cron een scriptje als root draaien die checked of er een file is en vervolgens nagios een slinger geeft

doet niet aan icons, usertitels of signatures


Verwijderd

Je zou altijd kunnen kijken hoe men dit bij webmin oplost.

Verwijderd

Topicstarter
Rac-On schreef op woensdag 06 december 2006 @ 10:19:
apache als root laten draaien is redelijk het toppunt van evilheid.. betere oplossing is dan bijv je php script ergens een file laten droppen en vanuit cron een scriptje als root draaien die checked of er een file is en vervolgens nagios een slinger geeft
Ja is ook een optie, bedankt voor het aanvragen, maar het simpelste en het snelste werkt volgens mij door aan user apache root rechten toe te kennen.

Het is slechts een test server, dus voor veiligheid maakt het niets uit.

Mocht iemand snel weten hoe dat moet gelieve even posten, op dit moment google ik er +/- een uurtje na zonder al te veel resultaat, onbegrijpelijk...

Bij voorbaat dank!

  • DexterBelgium
  • Registratie: Oktober 2004
  • Laatst online: 02-02 13:59
Heel snel (zonder opzoekingswerk) maar vlgs mij weigert apache gewoon (uit ingebouwd veiligheidsgevoel) om als root te starten.

T'all ya fine dandies, prancing about with yer head full of eyeballs, come and get me I say


  • Equator
  • Registratie: April 2001
  • Laatst online: 02-02 21:20

Equator

Crew Council

#whisky #barista

Apache onder root laten draaien is geen echte optie.
Maakt gewoon gebruik van sudo.
in /etc/sudoers (editen met visudo) ((Even uit het hoofdje))
code:
1
2
# Allow apache user to restart nagios daemon
apache   NOPASSWD: ALL /etc/init.d/nagios restart

En dan met shell_exec() het volgende commando aftrappen
PHP:
1
shell_exec("/usr/bin/sudo /etc/init.d/nagios restart");

Voor onduidelijkheid zie man sudoers :)
DexterBelgium schreef op woensdag 06 december 2006 @ 10:56:
Heel snel (zonder opzoekingswerk) maar vlgs mij weigert apache gewoon (uit ingebouwd veiligheidsgevoel) om als root te starten.
With stupid ^^^ :)

[ Voor 24% gewijzigd door Equator op 06-12-2006 10:57 ]


Verwijderd

Topicstarter
Heel erg bedankt voor de uitgebreide uitleg, maar helaas mocht het niet baten....

Ik krijg geen foutmelden of iets dergelijks, maar er wordt gewoon niets uitgevoerd...

Toevallig een suggestie? >:)

  • killercow
  • Registratie: Maart 2000
  • Laatst online: 02-02 16:29

killercow

eth0

Verwijderd schreef op woensdag 06 december 2006 @ 10:35:
[...]

Het is slechts een test server, dus voor veiligheid maakt het niets uit.
Het hele idee van testen is toch juist om oplossingen te vinden voor problemen, zodat het juist in productie vlekkeloos zal werken?

openkat.nl al gezien?


  • Equator
  • Registratie: April 2001
  • Laatst online: 02-02 21:20

Equator

Crew Council

#whisky #barista

Verwijderd schreef op woensdag 06 december 2006 @ 11:43:
Heel erg bedankt voor de uitgebreide uitleg, maar helaas mocht het niet baten....

Ik krijg geen foutmelden of iets dergelijks, maar er wordt gewoon niets uitgevoerd...

Toevallig een suggestie? >:)
- Redirect de output eens naar een file, en kijk wat er als output word gegenereerd.
- Check je /var/log/auth.log of messages om te kijken of sudo misschien een error geeft.

Lijken mij de meest logische stappen ;)
Pagina: 1