table of contents
SERVICES(5) | Linux - příručka programátora | 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) a 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. Standardní čísla portů specifikovaná 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 služba na tomto počítači momentálně běží, viz inetd.conf(5), kde je uvedeno více o konfiguraci internetových služeb. Mějte však na paměti, že ne všechny síťové služby musí být startovány pomocí 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 <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 mezerami 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 z důvodu kompatibility se doporučuje použít pouze znaky a-z, 0-9, a pomlčka (-).
Řádky, které nevyhovují tomuto formátu, by se zde neměly 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.)
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
SOUBORY¶
- /etc/services
- databáze služeb sítě Internet
- <netdb.h>
- Definice konstanty _PATH_SERVICES
DALŠÍ INFORMACE¶
listen(2), endservent(3), getservbyname(3), getservbyport(3), getservent(3), setservent(3), inetd.conf(5), protocols(5), inetd(8)
Assigned Numbers RFC, nejnovější RFC 1700, (také známo pod STD0002)
TIRÁŽ¶
Tato stránka je součástí projektu Linux man-pages. Popis projektu a informace o hlášení chyb najdete na http://www.kernel.org/doc/man-pages/.
2008-09-23 | Linux |