SERVICES(5) Linux - prirucka programatora SERVICES(5)
JMENO
services - databaze sluzeb site Internet
POPIS
services je citelny textovy soubor poskytujici prevod mezi nazvy sluzeb
a jim prislusnych cisel portu a protokolu. Kazdy sitovy program by mel
z tohoto souboru ziskat cislo portu a typ protokolu. Knihovna jazyka C
poskytuje funkce getservent(3), getservbyname(3), getservbyport(3),
setservent(3), a endservent(3), ktere slouzi k obsluze teto databaze.
Cisla portu jsou prirazovana organizaci IANA (Internet Assigned Numbers
Authority), jejich soucasna strategie je prirazovat jak TCP tak i UDP
protokoly pro cisla portu. Proto ma vetsina zaznamu dva zaznamy i pro
sluzby provozovane pouze nad TCP protokolem.
Porty s cisly mensimi nez 1024 mohou byt prirazeny pouze superuzivate-
lem (viz bind(2), tcp(7), and udp(7).) To je proto, aby klienti, kteri
se pripojuji na tyto porty mohli duverovat, ze zde bezi standardni
aplikace a ne nejaky programek nejakeho uzivatele. Well-known cisla
portu specifikovanych IANA jsou normalne umistena v teto oblasti.
Vyskyt dane sluzby v databazi sluzeb jeste neznamena, ze je sluzba na
tomto pocitaci dostupna, viz inetd.conf(5) kde je uvedeno vice. Mejte
vsak na pameti, ze ne vsechny sitove sluzby musi byt startovany z
inetd(8), a proto se nemusi vyskytovat v inetd.conf(5). Napr. news
(NNTP) a mail (SMTP) servery jsou casto inicializovany ve startovacich
skriptech.
Umisteni souboru services je definovano konstantou _PATH_SERVICES v
/usr/include/netdb.h. Obvykle je nastaveno na /etc/services.
Kazdy radek obsahuje jeden zaznam ve tvaru:
service-name port/protocol [aliases ...]
kde:
service-name
je nazev sluzby pod kterym je znama a vyhledavana. Velikost
pisma je rozhodujici. Casto je klient pojmenovan stejne jako
sluzba samotna.
port je cislo portu v desitkove soustave.
protocol je typ pouziteho protokolu. Toto policko by melo vyhovovat
zaznamu ze souboru protocols(5). Obvykle hodnoty jsou tcp a
udp.
aliases toto je volitelny seznam prezdivek oddeleny mezerou nebo
tabulatorem. Opet zde rozhoduje velikost pismen.
Jednotliva pole jsou oddelena mezerou nebo tabulatorem.
Komentare zacinaji znakem # a pokracuji az do konce radku. Prazdne
radky jsou vynechany.
service-name by melo zacinat na zacatku radku, protoze mezery na
zacatku nejsou odstranovany. service-names mohou byt jakekoliv tisknu-
telne znaky krome mezery a tabulatoru, ale vetsinou jsou pouzity pouze
znaky a-z, 0-9, a pomlcka (-).
Radky, ktere nevyhovuji tomuto formatu, by se zde nemeli vyskytovat.
(V soucasne dobe jsou funkcemi getservent(3), getservbyname(3), a
getservbyport(3). tise ignorovany, ale na to by se nemelo spolehat.)
Pro zpetnou kompatibilitu muze byt znak lomitko (/) mezi port a proto-
col nahrazen znakem carka (,). Pouzivani carky je v modernich insta-
lacich podcenovano.
Tento soubor muze byt distribuovan po siti pres jmenne sluzby jako
Yellow Pages/NIS nebo BIND/Hesiod.
Jednoduchy soubor services muze vypadat nejak 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
Maximalni pocet prezdivek je 35, protoze funkce getservent(3) je tak
napsana.
Radky delsi nez BUFSIZ (v soucasne dobe 1024) znaku budou funkcemi
getservent(3), getservbyname(3), a getservbyport(3) ignorovany.
SOUBORY
/etc/services
databaze Internetovych sluzeb
/usr/include/netdb.h
Definice konstanty _PATH_SERVICES
DALSI INFORMACE
getservent(3), getservbyname(3), getservbyport(3), setservent(3), end-
servent(3), protocols(5), listen(2), inetd.conf(5), inetd(8).
Assigned Numbers RFC, nejnovejsi RFC 1700, (take znamo pod STD0002)
Prirucka pro Yellow Pages Service
Prirucka pro BIND/Hesiod Service
Linux 31. brezna 1997 SERVICES(5)