Portál AbcLinuxu, 12. května 2025 05:37

Dotaz: Skript spusteny pres xinet.d nemuze zapisovat a cist soubory

16.7.2008 13:22 marrra
Skript spusteny pres xinet.d nemuze zapisovat a cist soubory
Přečteno: 244×
Odpovědět | Admin
Ahoj,

Pracuju na klient-server aplikaci, ktera bude vydadovat komunikaci dvou serveru. (Na zaklade ruznych podminek si budou vymenovat data)

Jako nejjednoduzsi zpusob me napadlo udelat skript a povesit ho na uricty port pres xinet.d Bohuzel pokud skript pustim lokalne, dela to co ma, ale pokud se na nej natelnetim, tak neprovadi ty prikazy, ktere napr. zapisujou do souboru. Asi to bude nejakym nastavenim Xinet.d. Nemate s tim nekdo nahodou zkusenosti?

Popripade nenapada Vas uplne jine reseni?

Diky
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

16.7.2008 15:13 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: Skript spusteny pres xinet.d nemuze zapisovat a cist soubory
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mozno ta podcenujem, ale vies ako funguje xinetd? Ze presmeruje vstup a vystup zo socketu na standartny vstup a vystup spusteneho programu. Takze napisat standalone a server a chciet ho spustat z xinetd neznamena iba upravit konfigurak ku xinetd, ale aj pridat option pre server samotny, aby si neotvaral vlastne sockety ale pouzil 0 a 1.

Pokial je to fakt skript, tak by nemal byt problem ho spustit tak, aby cely debugovaci vypis zapisoval niekam lokalne a pozerat sa na to. A samozrejme zacat s niecim trivialnym, akoze ten skript bez ohladu na vstup vytvori niekde subor a pod. Mozno este problem s cestami (podobne ako caste otazky typu, preco mi nebehaju skripty z cronu).
If you hold a Unix shell up to your ear, you can you hear the C.
16.7.2008 16:36 marrra
Rozbalit Rozbalit vše Re: Skript spusteny pres xinet.d nemuze zapisovat a cist soubory
Diky za odpoved,

ale tomuhle uplne nerozumim:

>Takze napisat standalone a server a chciet ho spustat z xinetd neznamena iba upravit konfigurak ku xinetd, ale aj pridat option >pre server samotny.

Popisu situaci podrobneji> Mam dva servery. A komunikace bude vypadat nasledovne: prvni posle pres telnet hlasku jakou mas verzi skriptu a druhy odpovi, pote prvni rekne vygenerej mi nejaky data a posli mi je a druhy je posle. Moje predstava je takova, ze prvni server pouziva telent a druhy bezi pod xinetd.

Jednoducha komunikace typu prvni posle ahoj, druhy pokud je retezec opravdu ahoj odpovi nazdar atd.. mi takto funguje bez problemu. Avsak pokud prvni rekne druhemu at precte data ze souboru u sebe na disku, tak takoveto prikazy se vesele preskakuji :(

>aby cely debugovaci vypis zapisoval niekam lokalne a pozerat sa na to a to napr. jak?

Diky
16.7.2008 20:06 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Skript spusteny pres xinet.d nemuze zapisovat a cist soubory
Má uživatel pod kterým je xinetd-em spouštěn práva na čtení toho datového souboru?
17.7.2008 00:39 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: Skript spusteny pres xinet.d nemuze zapisovat a cist soubory
1.) telnet je divny, cez netcat mi to ide, cez telnet nie, asi posiela nieco inak, nechce sa mi to studovat, pozri si to cez wireshark.

Mam skript (debugovacie veci su "-xv" a exec)
#!/bin/bash -xv

exec 2>/tmp/shinetd.out

read line
if [[ "$line" == xxx ]]; then
    cat /etc/passwd
fi
konfigurak pre xinetd (nechal som to bezat na porte mpm(tcp/45))
$ cat /etc/xinetd.d/shinetd
service mpm
{
        socket_type     = stream
        protocol        = tcp
        wait            = no
        user            = root
        group           = tty
        server          = /home/semo/tmp/shinetd
    log_on_success      += PID HOST DURATION
    log_on_failure      += HOST
        disable         = no
}

$ grep shinetd /etc/hosts.allow
shinetd:                localhost, 127.0.0.1
samotne napojenie:
$ netcat localhost 45 <<<xxx
#!/bin/bash -xv

exec 2>/tmp/shinetd.out
+ exec
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/false
...
vypise trocha debug hlasok na zaciatku a potom /etc/passwd. Zvysne debug hlasky su uz presmerovane do /tmp/shinetd.out. Ak vynechas ten exec, tak vsetko bude vypisovat rovno naspat po sieti. Takze ak nieco zblbne, tak by to pravdepodobne mal vidiet preco.
If you hold a Unix shell up to your ear, you can you hear the C.
18.7.2008 12:09 mlz
Rozbalit Rozbalit vše Re: Skript spusteny pres xinet.d nemuze zapisovat a cist soubory
Telnet m.j. posila ridici znaky pro terminal, nc nikoliv (tedy opravdu "cista data" - ten skript funguje

Rozmyslel bych si pouziti portu < 1024 -> potom user nemusi byt root

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.