ugrás a tartalomhoz

Apache restart

neogee · 2010. Okt. 11. (H), 21.49
Sziasztok.

Először is szeretném leszögezni, hogy új környezet számomra a linux és akadt is vele egy kis gondom...

Készítettem egy olyan php alkalmazást, aminek a segítségével elméletileg különösebb bonyodalom nélkül képes vagyok a localhost-hoz aldomaint hozzáadni. Nem egy bonyolult szkript, viszont ahhoz hogy ez működjön ügye újra kellene indítani az apache-ot, vagy legalábbis újra beolvasni a konfigurációs állományokat. És itt van a probléma.

Csináltam egy /var/www/addhost/apache.sh filet, amit shell_exec() el futtatok és aminek a tartalma a következő:

/etc/init.d/apache2 reload >> /var/www/addhost/apache.log

Egyrészt az a problémám ezzel, hogy egészen egyszerűen nem működik az apache újraindítása / konfigok újratöltése, másrészt pedig a logban néha van üzenet, néha pedig nincsen... és nem igazán értem hogy, miért...
Amikor kapok üzenetet a logba, akkor azt mondja, hogy nincsen jogosultságom az apache babrálásához. Több kérdésem is van ezzel kapcsolatban...

1: hogyan tudnám elérni, hogy legyen jogosultságom?
2: egyáltalán mi dönti el, hogy a php-nak mihez van jogosultsága?
3: ha az dönti el, hogy ki futtatja, akkor hogyan tudom különböző xy felhasználó programjaként futtatni?

Remélem érthető, hogy mi a gondom... :)
A válaszokat előre is köszönöm! :))
 
1

mivel nem írtad melyik dist

Tanul0 · 2010. Okt. 11. (H), 23.01
mivel nem írtad melyik dist ezért:

sudoers


DE! én a helyedben írnék egy scriptet, ami rámutat az apachera scriptjére, mert ha valamilyen biztonsági résen bejutnak bárki tetszés szerűen kezeli majd az apacheodat. Leginkább nem ajánlom. Te tudod.
2

+1

janoszen · 2010. Okt. 11. (H), 23.19
Csak egyet tudok érteni. Gondolom valami adminpanelt szeretnél hegeszteni magadnak, NE TEDD. Főleg ha új a Linux környezet, mert sec perc alatt root joghoz juthat vele bárki a gépeden, aki kicsit is ért hozzá és utána SEMMI nem segít rajta, csak az, hogy ha vastól fölfele minden legyalulsz róla és újratelepíted. Az ilyesmit az ember NEM csinál PHP-ból, hanem valami jól megírt daemonból, ami mindent paranoiás módon ellenőriz. Ha feltétlenül vhostokat akarsz konfigurálni dinamikusan, vannak erre modulok, nem kell újraindítani az Apacheot.

Az már csak apróság a fentiek mellett, hogy a reload is tart egy kis ideig és addig a szervered nem fog kiszolgálni.

Én szóltam.
3

köszi a féltést :)

neogee · 2010. Okt. 12. (K), 00.14
Igazán köszönöm a féltést fiúk, tisztában vagyok vele, hogy ez egy gyakorlatilag betömhetetlen biztonsági rés... természetesen csak virtuális gépen fut a linux ( egyébként ubuntu 10.04 ) és nincsen engedélyezve semmilyen hálózati kapcsolat, még a virtuális gépet futtató gép hálózata is le van tiltva, szóval erre figyeltem. :) Természetesen ezt nem szándékozom így hagyni és használni, ez csak egy példa lett volna, egyrészt a linux mélyebb megismerésére, másrészt pedig az apacs és a php konfigurálgatására, meg úgy általában az ismerkedésre. Pl, hogy hogyan lehet shell scriptet futtatni, és hasonlók.

Ellenben az még mindig nagyon érdekel, hogy ha nekem van ügye fent egy jólszituált apache, és mellé egy php értelmező, akkor ha megnyitok egy böngészőt, és abban egy localhostos php scriptet, akkor a php értelmező, illetve az apache az kinek a neve alatt fog futni? És egyáltalán milyen jogai lesznek? mely helyeken képes majd módosítani? stb... :)
valójában szeretnék összerakni egy tárhely szolgáltatást a saját gépemen. persze nem külső ügyfeleknek, hanem csak így magamnak ismerkedés gyanánt, hogy belelássak hogyan is működik ez. :) Persze a domain nevek itt ügye a localhost különböző aldomainjai lennének... És minden domainhez tartozó szkript csak a saját könyvtárában lenne képes módosításokat végezni és az egyéb szokásos dolgok. :)

Ha esetleg tudtok ajánlani egy vagy akár több könyvet, cikket, blogot, bármit ami segíthet, azt nagyon nagyon megköszönném, és irtó hálás lennék! :)
Jó volna ha elsősorban magyar nyelven tudnám olvasni, de persze az sem kifejezetten probléma ha angol nyelvű, max lasabban haladok valamivel... :) Legalább az angolt is fejlesztem közben :)))))
4

PHP jogok

janoszen · 2010. Okt. 12. (K), 02.03
Attól függ, hogy van fölconfolva. Ha Apache-ot futtatsz modulos PHP-val, akkor az Apache usernevével és groupjával fog futni a PHP is. Ha CGI-t vagy FastCGI-t használsz suexec-el, akkor annak a nevében fog futni, akire beállítod.

Ami a tárhely szolgáltatást illeti, az elmúlt 3 évem jelentős részét abba fektettem, hogy összerakjam a témát és gondolom nem is kell mondjam, nem egyszerű. Ha nem csak saját alkalmazásokat akarsz futtatni, akkor egy csomó probléma szembe fog jönni, amire nem is gondoltál. Példának okáért egy pár ilyesmi:

  • Felhasználók által shell_exec-el beinjektált shell botok, amik ledosolják a gépedet
  • Nem biztonságosra beállított jogosultságok, aminek segítségével egyes felhasználók hozzáférhetnek mások fájljaihoz
  • Minden második PHP verzióban open_basedir bypass
  • Túlzott erőforrás-használat (CPU, memória, disk IO, Apache szálak)
  • Telespamelt, nem biztonságos CMS rendszerek, amik megeszik az adatbázis szerveredet (e107, phpfusion)


Ezek persze csak akkor jönnek elő, ha már van néhány tucat ügyfeled, akik közül nem mindenki ért ahhoz, amit csinál, ellenben szereti ezt gondolni. Arról a problémáról nem is beszélve persze, hogy hogyan konfigurálod a szervert (a reload itt a fent említett problémák miatt nem megoldás, hiszen egy ügyfél folyamatosan confolja a hostjait, akkor akadozik a szolgáltatás, ráadásul ha ketten kérnek egyszerre reloadot, abból vicces dolgok lesznek).

Ha ilyesmit szeretnél csinálni, akkor először is jóóó alaposan meg kell ismerkedned a Linux kernel rejtelmeivel (példál a már sokat emlegedett Tannenbaum - Oprendszerek könyv révén) és föl kell szedned némi C tudást is, ugyanis anélkül a feladat nem valósítható meg tisztességesen. Emellé nem árt valami Python vagy Perl sem, hiszen a konfiguráló szoftvereidet valamiben meg kell írnod. Ezen felül nem árt egy kicsit érteni a hálózatokhoz sem, amiben ez a könyv nagy segítség. Aztán ha ezek mind megvannak, akkor A-Z el kell olvasni az Apache és a potenciális konkurensek manualját, majd el kell olvasni még egyszer.
5

Köszi

neogee · 2010. Okt. 12. (K), 09.34
Mint mondtam, nem cél, hogy bárki számára is ilyesfajta szolgáltatást nyújtsak. Tehát tulajdonképpen egyedül én babrálnám a dolgot. :) Igazából egyelőre valami nagyon alapszintű történetet szeretnék létrehozni, mert mostanában egyre jobban érdekel hogy mi van a háttérben, és hogy mitől tudok phpsként úgy dolgozni ahogyan lehetőségem van rá. Biztosan rengeteg tudás és tanulás van mögötte, ezért eldöntöttem, hogy ha nem is leszek hiper szuper rendszergazda, igyekszem a webfejlesztésnek ezt a részét is valamennyire elsajátítani. :) És hát nem utolsó sorban rengeteg olyan dolog van aminek a megtanulásához nem árt egy hasonló szerverkörnyezet. :) Hostolt tárhelyen, nem lehet sok mindent megcsinálni amit meg kellene tanulni, egy windowsos környezet pedig azért mégsem olyan. Márpedig legtöbbször nem windows környezetre fejlesztünk, és egy nagyobb cégnél ahol komolyabb projektek futnak ügye a szerverkörnyezet is saját.

Az hogy sok mindent el kell sajátítani ahhoz, hogy meg tudjam valósítani, az nem gond mert egyrészt szeretek tanulni, másrészt pedig érdekel a téma, ráadásul mindhárom említett nyelv szimpatikus.

Köszönöm a könyveket, megyek és bele is ásom magam a témába. :)