SERVICES(5)

JMÉNO
services - databáze služeb sítě Internet

POPIS
services je čitelný textový soubor poskytující převod mezi názvy služeb a jim příslušných čísel portů a protokolů. Každý síťový program by měl z tohoto souboru získat číslo portu a typ protokolu. Knihovna jazyka C poskytuje funkce getservent(3), getservbyname(3), getservbyport(3), setservent(3), a endservent(3), které slouží k obsluze této databáze. Čísla portů jsou přiřazována organizací IANA (Internet Assigned Numbers Authority), jejich současná strategie je přiřazovat jak TCP tak i UDP protokoly pro čísla portů. Proto má většina záznamů dva záznamy i pro služby provozované pouze nad TCP protokolem. Porty s čísly menšími než 1024 mohou být přiřazeny pouze superuživatelem (viz bind(2), tcp(7), and udp(7).) To je proto, aby klienti, kteří se připojují na tyto porty mohli důvěřovat, že zde běží standardní aplikace a ne nějaký prográmek nějakého uživatele. Well-known čísla portů specifikovaných IANA jsou normálně umístěna v této oblasti. Výskyt dané služby v databázi služeb ještě neznamená, že je služba na tomto počítači dostupná, viz inetd.conf(5) kde je uvedeno více. Mějte však na paměti, že ne všechny síťové služby musí být startovány z inetd(8), a proto se nemusí vyskytovat v inetd.conf(5). Např. news (NNTP) a mail (SMTP) servery jsou často inicializovány ve startovacích skriptech. Umístění souboru services je definováno konstantou _PATH_SERVICES v /usr/include/netdb.h. Obvykle je nastaveno na /etc/services. Každý řádek obsahuje jeden záznam ve tvaru:

    service-name port/protocol [aliases ...]

kde:

service-name
    je název služby pod kterým je známa a vyhledávána. Velikost písma je rozhodující. Často je klient pojmenován stejně jako služba samotná.

port
    je číslo portu v desítkové soustavě.

protocol
    je typ použitého protokolu. Toto políčko by mělo vyhovovat záznamu ze souboru protocols(5). Obvyklé hodnoty jsou tcp a udp.

aliases
    toto je volitelný seznam přezdívek oddělený mezerou nebo tabulátorem. Opět zde rozhoduje velikost písmen.

Jednotlivá pole jsou oddělena mezerou nebo tabulátorem. Komentáře začínají znakem # a pokračují až do konce řádku. Prázdné řádky jsou vynechány. service-name by mělo začínat na začátku řádku, protože mezery na začátku nejsou odstraňovány. service-names mohou být jakékoliv tisknutelné znaky kromě mezery a tabulátoru, ale většinou jsou použity pouze znaky a-z, 0-9, a pomlčka (-). Řádky, které nevyhovují tomuto formátu, by se zde neměli vyskytovat. (V současné době jsou funkcemi getservent(3), getservbyname(3), a getservbyport(3). tiše ignorovány, ale na to by se nemělo spoléhat.) Pro zpětnou kompatibilitu může být znak lomítko (/) mezi port a protocol nahrazen znakem čárka (,). Používání čárky je v moderních instalacích podceňováno. Tento soubor může být distribuován po síti přes jmenné služby jako Yellow Pages/NIS nebo BIND/Hesiod. Jednoduchý soubor services může vypadat nějak takto:

    netstat         15/tcp
    qotd            17/tcp          quote
    msp             18/tcp          # message send protocol
    msp             18/udp          # message send protocol
    chargen         19/tcp          ttytst source
    chargen         19/udp          ttytst source
    ftp             21/tcp
    # 22 - unassigned
    telnet          23/tcp

CHYBY
Maximální počet přezdívek je 35, protože funkce getservent(3) je tak napsána. Řádky delší než BUFSIZ (v současné době 1024) znaků budou funkcemi getservent(3), getservbyname(3), a getservbyport(3) ignorovány.

SOUBORY

/etc/services
    databáze Internetových služeb

/usr/include/netdb.h
    Definice konstanty _PATH_SERVICES

DALŠÍ INFORMACE
getservent(3), getservbyname(3), getservbyport(3), setservent(3), endservent(3), protocols(5), listen(2), inetd.conf(5), inetd(8). Assigned Numbers RFC, nejnovější RFC 1700, (také známo pod STD0002) Příručka pro Yellow Pages Service Příručka pro BIND/Hesiod Service