Portál AbcLinuxu, 13. června 2024 21:01


Dotaz: Bash script http server

23.10.2010 19:44 Neuron
Bash script http server
Přečteno: 378×
Odpovědět | Admin
skusam rozbehat http server cez bashovsky skritp.. postupoval som podla navodu: http://www.debian-administration.org/article/371/A_web_server_in_a_shell_script

neslo mi akurat to inetd restart ale to som nainstaloval a uz to slo... avsak ked tam hodim localhost/index.html tak mi to nic nezobrazi. nemate niekto skusenost v com je chyba?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

23.10.2010 21:24 Patrik Uhrak | skóre: 31 | blog: pato
Rozbalit Rozbalit vše Re: Bash script http server
Odpovědět | | Sbalit | Link | Blokovat | Admin

Nazdar, ked ide nieco inak ako sa ocakavalo, tak je vhodne spustit skript nasledovne:

bash -x skript

a pozriet si poriadne vystup. Pripadne ho mozes dat aj sem.

23.10.2010 21:45 Neuron
Rozbalit Rozbalit vše Re: Bash script http server
nazdar, dik za ozvanie: tu je vystup co mi to vypisalo: + base=/var/www + read request
23.10.2010 22:05 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: Bash script http server
Spouštíš to přes ten inetd a ne jen tak z konzole (terminálu)?
23.10.2010 22:10 Neuron
Rozbalit Rozbalit vše Re: Bash script http server
Neviem ako to myslis, ze cez inetd... to bash -x skript som dal len do terminalu.... a inac som robil vsetko tak ako je to v popise na tej stranke ktorej link je hore... ulozil skript... zmenil inetd.conf , restartol inetd, vytvoril subor index.html a skusil http://localhost/index.html..
23.10.2010 22:28 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: Bash script http server
Z terminálu to spouštět jen tak nemůžeš, protože ten skript očekává, že na standardním vstupu a výstupu bude nějaký socket - TCP spojení s web browserem, a ne terminál.

Je cesta ke skriptu v inetd.conf správně zadaná? Neloguje inetd nějaké chyby? Poslouchá inetd doopravdy na portu 80?

Zkus se na port 80 připojit přes netcat. Spustil se proces s tímto skriptem (viz ps aux)? Možná by šlo přidat nějaké ladící hlášky přes chybový výstup a ty číst pak z nějakého logu (jestli to inetd loguje) nebo se na to dívat přes strace.

Ten bashový skript je poměrně triviální (a je nebezpečný), ale pokud aspoň trochu netušíš, jak HTTP a síťová komunikace funguje, je to problém.
23.10.2010 22:47 Neuron
Rozbalit Rozbalit vše Re: Bash script http server
z toho co si mi napisal, Ti viem odpovedat, len tolko ze ta cesta k skriptu v inetd.conf je spravna... zvysok idem googlit ako to robit... ako vidim nesom v tom este tak zbehly., avsak este len zacinam, preto mi je divne ze ten, ako som aj na stranke cital trivialny skript mi nejde... a inac, co myslis tym ze je nebezpecny? uz som to aj niekde vo fore cital pri nejakom podobnom scripte...
23.10.2010 23:00 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: Bash script http server
Je nebezpečný proto, že přes něj kdokoli může stáhnout jakýkoliv soubor z tvého počítače, který je čitelný uživatelem nobody. Asi se nabízejí i nějaké možnosti DoS útoku. O CGI variantě ani nemluvě.
23.10.2010 23:07 Neuron
Rozbalit Rozbalit vše Re: Bash script http server
ok...tak dik... v kazdom pripade, na tej stranke je ten script aj s popisom ok? chybu mam niekde ja, ze? este jedna otazka: po tom so spustim v terminaly << inetd restart >> mi to nevyhodi ziadnu hlasku., je to ok? a potom len staci spustit v browseri: localhost/index.html , alebo treba este nejako spustit pred tym ten script?
23.10.2010 23:16 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: Bash script http server
Na té stránce to vypadá, že je to dobře. Stačí, když spustíš (resp. restartuješ) inetd; inetd funguje tak, že ten skript spustí sám pro každé příchozí spojení. A do prohlížeče by mělo stačit zadat http://localhost/index.html, buď se skutečně zobrazí soubor index.html, nebo se vypíše chybová hláška z toho skriptu - za předpokladu, že vše bude fungovat.
23.10.2010 23:20 Neuron
Rozbalit Rozbalit vše Re: Bash script http server
ok, tak takto to robim a chrome vypise ze sa mu server localhost nepodarilo najst a mozzila to hned redirectne na localhost.com/index.html a vypise ze: The connection to the server was reset while the page was loading.
23.10.2010 23:23 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: Bash script http server
Jo a ještě něco, má ten bash skript nastavená práva pro spouštění? (chmod +x ...)
23.10.2010 23:26 Neuron
Rozbalit Rozbalit vše Re: Bash script http server
jo, hodil som tam aj 777
poky74 avatar 24.10.2010 07:43 poky74 | skóre: 36 | blog: Zápisník | Vrchlabí
Rozbalit Rozbalit vše Re: Bash script http server
Odpovědět | | Sbalit | Link | Blokovat | Admin
Když tomu nerozumíš tak nedělej kraviny a nahoď normální http server, alehčíš si to. Nebo máš nějakej speciální důvod pro tam nebezpečný řešení?
Chcete Linuxové samolepky nebo Tuxe na klíče? ->
24.10.2010 10:27 neuron
Rozbalit Rozbalit vše Re: Bash script http server
Ano, mas pravdu, velmi tomu nerozumiem, so skriptovanim som zacal len nedavno. Ten http server mi treba rozbehat kvoli ulohe v skole. Treba mi spravit nejake skripty, ale ten http server je zaklad. Tie skripty to v poho zvladnem, ale neviem preco mi nejde rozbehat ten server, ked to vyzera uplne easy. Este jedna vec, skusal to robit aj kamos, ale on na svojom distre (tiez ubuntu) ani len nenasiel
inetd.conf
? a tomu som nerozumel...
Jendа avatar 24.10.2010 10:47 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Bash script http server
Začal bych tím, že bych zkusil, jestli se ten skript vůbec spustí - dej do něj echo do nějakého souboru a zkus přistoupit na tu adresu.
24.10.2010 11:01 Neuron
Rozbalit Rozbalit vše Re: Bash script http server
ked ho spustim
./skript
tak sa mi len kurzor v terminaly posunie o riadok nizsie a blika, akoby to bezalo... ak dam
bash -x skript
tak je vystup takyto
+ base=/var/www
+ read request
...
Jendа avatar 24.10.2010 12:13 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Bash script http server
Ach jo. Dej do něj třeba date >> /tmp/log a přistup na tu stránku. Pokud se ten soubor vytvoří, pak se skript spustil, pokud ne, pak ho inetd z nějakého důvodu vůbec nespustí.
24.10.2010 12:22 Neuron
Rozbalit Rozbalit vše Re: Bash script http server
Dal som to do skriptu pred ifovsku vetvu a ked tam hodim stranku a pozrem sa do /tmp tak tam log nemam... takze ten skript ako vravis nebezi, ze ho drzi ten inetd? aspon som sa pohol dalej... z akeho dovodu ho moze blokovat?

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.