• Ismertető
  • Hírek
  • Letöltés
  • Súgó
  • Tananyag
  • Közösség
  • Ubuntu Women
ubuntu.hu

Belépés

Mi az az OpenID?
  • Belépés OpenID használatával
  • OpenID belépés megszakítása
  • Felhasználó létrehozása
  • Elfelejtett jelszó

Facebook

Kapcsolat

  • Identi.ca csoport
  • Facebook oldal
  • IRC
  • Közösségi levlista
  • Segítői levlista
  • Magyar Ubuntu Planet
  • További elérhetőségek

Apache újraindítása php-ból

2010. május 13. – 18.39 – thxer
  • Kiszolgálók

Tisztelt Fórumozók!

Van egy nagy problémám melyet nem sikerül megoldani.
Ubuntu 10.04 szerver van telepítve, rajta apache2 + suexec + php5 fcgi-vel. Az lenne a feladat hogy php-ból execcel tudjam vezérelni az apache-ot. Ha kiadom azt a parancsot hogy /etc/init.d/apache2 stop az exec visszaadja azt hogy "done" de valójában nem történik semmi. Ha sudo-t eléírom akkor semmit nem ad vissza és nem is történik semmi, próbálgattam szerkesztgetni a /etc/sudoers-t de itt sem sikerült megoldásra jutni. Ezt szúrtam be a sudoersbe:

user<--->ALL=(root) NOPASSWD:/etc/init.d/apache2

De így nem jó.
Kérem aki tudja a megoldást, az ne tartsa magában.

‹ SSH Copy-Paste Apache újraindítása php-ból ›
  • A hozzászóláshoz regisztráció és belépés szükséges
Vándor – 2010. május 13. 20.50

üdv
az adott "usert" hozzáaadtad a sudoers-ben ?
ha igen, akkor a privilégiumot ALL-ra állítottad? user ALL= ALL
a sudoers mivel/hogyan szerkesztetted? legkönnyebb : visudo (visudo -c)
ha így csináltad, és nem működik, akkor nincs ötletem sajnos

  • A hozzászóláshoz regisztráció és belépés szükséges

 

maat – ubuntu.hu szerkesztő – 2010. május 14. 12.16

A teljes parancssort be kell jegyezni a sudoersebe (vagy kockázatosabban *-gal jelölni a további argumentumok helyét). És eszedbe se jusson közvetlenül szerkeszteni a /etc/sudoerst, mert kizárhatod magad (erre van a visudo).

Nem ismerem az fcgi-t, de én egy fájlt tennék le inkább php-ból, és azt figyelném valami daemonnal. Nem tűnik egészségesnek magad alatt újraindítani a szervert.

  • A hozzászóláshoz regisztráció és belépés szükséges

 

Gorkhaan – moderátor – 2010. május 15. 20.40 – előzmény

+1

Ugyan ez járt a fejemben. Cron-nal figyelni a fájl tartalmát, 1 perces ablakban.

  • A hozzászóláshoz regisztráció és belépés szükséges

||"Ha előre tudtad volna, hogy a gyertya lángja tűz, akkor már régen kész lenne az étel..." || My Homepage = Hasznos tippek & Trükkök

thxer – 2010. május 15. 20.14

Ha a sudoers editelem utánna újra kell indítani valamit, vagy a beállítás egyből érvénybe lép?

  • A hozzászóláshoz regisztráció és belépés szükséges

 

NightWolf_ – 2010. május 15. 20.58 – előzmény

Egyből érvénybe lép...

Egyébként mivel apache futtatja a fájlt, szerintem a www-data felhasználónak kéne sudora jogot adni.

  • A hozzászóláshoz regisztráció és belépés szükséges

Everybody poe-poe!

thxer – 2010. május 15. 21.19 – előzmény

De mivel fcgi és suexec van az apacheon ezért egy megadott user nevében hívom meg a php-t, a php-scriptben az exec azt adja vissza hogy "...done", de semmi nem történik, a phpben ez van:
<?php
$output = exec('/etc/init.d/apache2 stop');
echo $output;
?>

  • A hozzászóláshoz regisztráció és belépés szükséges

 

NightWolf_ – 2010. május 15. 23.45 – előzmény

Igen, az fcgi miatt bajban voltam, elvileg annak mennie kéne. Próbáld ki exec('whoami') paranccsal. Esetleg érdekes lenne még egy $_ENV['user'] kiiratása is.

Egyébként ha nincs joga a felhasználónak akkor is tudja futtatni a /etc/init.d/apache2 fájlt (nem tudom miért), és hiba nélkül végre is hajtódik, csak éppen a daemonnal nem történik semmi. Szerintem valami hasonlóról lesz szó.

Ha máshogy nem megy próbálj meg a usernek mindenre jogot adni (próbának csak, utána le lehet szedni).

  • A hozzászóláshoz regisztráció és belépés szükséges

Everybody poe-poe!

thxer – 2010. május 15. 23.52 – előzmény

Azt a felhasználót írja ki akinek a nevével futtatom a php-t. Jelent esetben teszt.
Lehet hogy a sudoers-nél rontottam el valamit, jelenleg közvetlenül a root után ez szerepel:

teszt ALL=(ALL) NOPASSWD:ALL

A $_ENV['user'] -re hibát ír: Use of undefined constant user - assumed 'user'

  • A hozzászóláshoz regisztráció és belépés szükséges

 

NightWolf_ – 2010. május 16. 14.24 – előzmény

Szerintem: teszt ALL=(root) ALL NOPASSWD:ALL

  • A hozzászóláshoz regisztráció és belépés szükséges

Everybody poe-poe!

ciluu – 2010. május 18. 15.07

system('/etc/init.d/apache2 stop')

ezt nem probaltad meg?

  • A hozzászóláshoz regisztráció és belépés szükséges

igen, en is ugyanolyan fogyatekos vagyok, mint te!

medvesajt – 2010. július 14. 0.24

Üdv!

Sudoers fájlban:

Cmnd_Alias APACHE = /etc/init.d/apache2
userneve ALL=NOPASSWD:APACHE

Egyébként szerintem ne akard magad alatt leállítani webszervert. Milyen alapon vársz választ vissza? Gondolj bele, leállítod azt a webszervert, amely a programod futtását biztosítja ... 22-es csapda

  • A hozzászóláshoz regisztráció és belépés szükséges

Üdv, Medvesajt

Hozzászólás-megjelenítési lehetőségek

A választott hozzászólás-megjelenítési mód a „Beállítás” gombbal rögzíthető.
© 2007–2011. Magyar Ubuntu Közösség.
Az Ubuntu a Canonical bejegyzett védjegye.
Az ubuntu.hu az fsf.hu kiszolgálóin fut.