NAZWA¶
services - lista usług sieci Internet
OPIS¶
services jest plikiem tekstowym ASCII umożliwiającym
wzajemne przyporządkowanie pomiędzy przyjaznymi nazwami
usług a odpowiednimi numerami portów i rodzajami
protokołów. Każda aplikacja sieciowa powinna
konsultować z tym plikiem numer portu (i protokołu) dla
określonej usługi. Funkcje biblioteki C
getservent(3),
getservbyname(3),
getservbyport(3),
setservent(3) i
endservent(3) obsługują zapytania dotyczące
zawartości tego pliku od programów.
Numery portów są przydzielane przez IANA (Internet Assigned
Numbers Authority), ich aktualna polityka to przydzielanie numeru portu
jednocześnie dla obu protokołów: TCP i UDP. Dlatego
większość usług w pliku services posiada
podwójne rekordy, nawet w przypadku usług
działających tylko po TCP.
Numery portów poniżej 1024 (tzw. niskie porty, porty o niskich
numerach) mogą być otwierane jedynie przez administratora (patrz
bind(2),
tcp(7) i
udp(7)). Oznacza to, że klient
łączący się z niskim numerem portu może
mieć pewność, że program obsługi na tym
porcie jest standardowym programem systemowym, a nie dowolnym programem
użytkownika danego komputera. Popularne numery portów
określone przez IANA są zwykle umieszczane w tym
właśnie przedziale portów administratora.
Obecność pozycji dotyczącej usługi w pliku
services nie oznacza, że dana usługa jest aktualnie
obsługiwana przez komputer. Konfigurację obsługiwanych
usług internetowych można znaleźć w pliku
inetd.conf(5). Należy również
pamiętać, że nie wszystkie usługi sieciowe
są uruchamiane przez
inetd(8), a zatem plik
inetd.conf(5)
nie zawiera wszystkich usług świadczonych przez dany komputer. W
szczególności serwery news (NNTP) i poczty (SMTP) są
zwykle uruchamiane z systemowych skryptów startowych.
Położenie pliku
services jest zdefiniowane jako
_PATH_SERVICES w pliku
<netdb.h>. Zwykle jest to
/etc/services.
Każdy wiersz tego pliku opisuje jedną usługę i ma
następującą postać:
- nazwa-usługi port/protokół [aliasy
...]
- gdzie:
- nazwa-usługi
- jest to przyjazna dla człowieka nazwa, pod którą
usługa jest znana i pod którą jest poszukiwana.
Rozróżnia się małe i wielkie litery.
Często program kliencki jest nazywany tak jak
nazwa-usługi.
- port
- numer portu (liczba dziesiętna), z którego ma dana
usługa korzystać.
- protokół
- rodzaj protokołu, jaki ma być wykorzystywany. To pole
powinno zawierać jeden z protokołów zdefiniowanych w
pliku protocols(5). Zwykle jest to tcp lub udp.
- aliasy
- jest to opcjonalna lista rozdzielonych spacjami lub znakami tabulacji
innych nazw tej samej usługi. Tu też rozróżnia
się małe i wielkie litery.
Poszczególne pola mogą być rozdzielane spacjami lub znakami
tabulacji.
Komentarze rozpoczynają się od znaku krzyżyka # aż
do końca wiersza. Puste wiersze są pomijane.
nazwa-usługi powinna się rozpoczynać w pierwszej
kolumnie pliku, ponieważ początkowe spacje nie są
pomijane.
nazwa-usługi może się
składać z dowolnych widocznych znaków, z wyjątkiem
spacji i znaku tabulacji. Jednakże w celu zmniejszenia
kłopotów z przenośnością powinny być
użyte znaki z bardziej ograniczonych zakresów.
Przykładowo a-z, 0-9 i myślnik (-) wydają się
być rozsądnym wyborem.
Wiersze nie odpowiadające temu formatowi nie powinny znajdować
się w pliku (obecnie są one pomijane przez funkcje
getservent(3),
getservbyname (3) i
getservbyport(3),
jednakże nie należy polegać na tym zachowaniu).
Plik ten może być rozpowszechniany w sieci za pośrednictwem
takich ogólnosieciowych usług nazewnictwa, jak Yellow Pages/NIS
lub BIND/Hesiod.
Przykładowy plik
services mógłby
wyglądać tak:
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
PLIKI¶
- /etc/services
- lista usług sieci Internet
- <netdb.h>
- definicja stałej _PATH_SERVICES
ZOBACZ TAKŻE¶
listen(2),
endservent(3),
getservbyname(3),
getservbyport(3),
getservent(3),
setservent(3),
inetd.conf(5),
protocols(5),
inetd(8)
Assigned Numbers RFC, ostatnio RFC 1700, (AKA STD0002).
O STRONIE¶
Angielska wersja tej strony pochodzi z wydania 3.71 projektu Linux
man-pages. Opis projektu, informacje dotyczące zgłaszania
błędów, oraz najnowszą wersję
oryginału można znaleźć pod adresem
http://www.kernel.org/doc/man-pages/.
TŁUMACZENIE¶
Autorami polskiego tłumaczenia niniejszej strony podręcznika man
są: Piotr Pogorzelski (PTM) <piotr.pogorzelski@ippt.gov.pl>,
Andrzej M. Krzysztofowicz (PTM) <ankry@green.mf.pg.gda.pl> i
Michał Kułach <michal.kulach@gmail.com>.
Polskie tłumaczenie jest częścią projektu
manpages-pl; uwagi, pomoc, zgłaszanie błędów na
stronie
http://sourceforge.net/projects/manpages-pl/. Jest zgodne z
wersją
3.71 oryginału.