NAZWA¶
services - lista usług sieci Internet
OPIS¶
Uwaga! To tłumaczenie może być nieaktualne!
services jest plikiem tekstowym 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 konsultowac 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
maszynę. 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
/usr/include/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 (ale zajrzyj też do
sekcji BŁĘDY, poniżej). 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żyta znaki z bardziej
ograniczonych zakresów. Np. a-z, 0-9 i myślnik (-) wydaje 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.)
Jako cecha zgodności z poprzednimi wersjami, ukośnik (/) pomiędzy
numerem
portu a nazwą
protokołu może być w
rzeczywistości również przecinkiem (,). Jednak stosowanie
przecinka w nowych instalacjach nie jest zalecane.
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
BŁĘDY¶
Ze względu na sposób, w jaki jest napisana funkcja
getservent(3) istnieje ograniczenie liczby aliasów do 35.
Wiersze dłuższe niż
BUFSIZ (obecnie 1024) będą
ignorowane przez funkcje
getservent(3),
getservbyname(3) i
getservbyport(3). Spowoduje to również błędne
zinterpretowanie następnego wiersza.
PLIKI¶
- /etc/services
- lista usług sieci Internet
- /usr/include/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).
Przydzielone numery można znaleźć w RFC 1700 (inaczej, STD0002)
Przewodnik po usłudze Yellow Pages
Przewodnik po usłudze BIND/Hesiod
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu
Tłumaczenia Manuali i
może nie być aktualne. W razie
zauważenia różnic między powyższym opisem a
rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o
zapoznanie się z oryginalną (angielską) wersją strony
podręcznika za pomocą polecenia:
- man --locale=C 5 services
Prosimy o pomoc w aktualizacji stron man - więcej informacji można
znaleźć pod adresem
http://sourceforge.net/projects/manpages-pl/.