|
SERVICES(5) manual page
Table of Contents
services - Elenco dei servizi di rete internet
services
è un normale file ASCII che fornisce una mappa tra i nomi testuali dei
servizi internet, e i nomi delle porte e i tipi di protocolli loro assegnati.
Ogni programma di rete dovrebbe guardare in questo file per sapere il
numero della porta (e il protocollo) del suo servizio.
I numeri di porta
sono assegnati dallo IANA (Internet Assigned Numbers Authority), e la
loro politica attuale assegna entrambi i protocolli TCP e UDP quando si
assegna un numero di porta. Perciò, molte voci avranno due voci, anche
per i servizi solo TCP.
I numeri di porta inferiori a 1024 (le cosiddette
porte 'low numbered') possono essere usate solo da root (si veda bind(2)
,
tcp(7)
, e udp(7)
.) Questo accade perché i clienti che si connettono a una
porta low numbered possono fare affidamento sul fatto che il servizio
in esecuzione sulla porta è l'implementazione standard e non un servizio
avviato da un utente della macchina. I numeri di porta noti specificati
dall'IANA sono normalmente localizzati in questo spazio esclusivo per root.
La presenza di una voce per un servizio nel file services non significa
necessariamente che il servizio è attualmente in esecuzione sulla macchina.
Si veda inetd.conf(5)
per la configurazione dei servizi Internet offerti.
Si noti che non tutti i servizi di rete sono avviati da inetd(8)
, e
così non appariranno in inetd.conf(5)
. In particolare, i server per news
(NNTP) e mail (SMTP) spesso sono inizializzati dagli script di boot del
sistema.
La posizione del file services è definita da _PATH_SERVICES in
/usr/include/netdb.h. Questa è usualmente settata a /etc/services.
Ogni
riga descrive un servizio, ed ha il seguente formato:
- nome-servizio porta/protocollo
[aliases ... ]
- dove:
- nome-servizio
- è il nome amichevole con il quale è
conosciuto il servizio e con il quale viene cercato dai programmi. È case
sensitive. Spesso, i programmi client sono nominati in base al nome-servizio.
- porta
- è il numero della porta (in decimale) da usare per questo servizio.
- protocollo
- è il tipo di protocollo da usare. Questo campo deve corrispondere
ad una voce nel file protocols(5)
. Valori tipici sono tcp e udp.
- aliases
- è una lista opzionale separata da spazi o tab di altri nomi per questo
servizio (ma si veda la sezione BACHI sotto). Ancora, i nomi sono case
sensitive.
Sia spazi che tab possono essere usati per separare i campi.
I commenti sono iniziati con il carattere `#' e continuano fino alla fine
della riga. Le righe vuote non vengono considerate.
Il nome-servizio dovrebbe
cominciare nella prima colonna del file, in quanto gli spazi iniziali
non sono scartati. nome-servizio può essere composto da caratteri stampabili
qualsiasi ad esclusione di spazi e tab, comunque dovrebbe essere usata
una scelta limitata di caratteri per minimizzare i problemi di inter-operabilità.
Es.: a-z, 0-9 e trattino (-) è una scelta sensata.
Righe che non corrispondono
a questo formato non dovrebbero essere presenti nel file. Attualmente,
queste sono scartate silenziosamente da getservent(3)
, getservbyname(3)
,
e getservbyport(3)
. In ogni caso, non si dovrebbe far affidamento su questo
comportamento.
Per compatibilità all'indietro, lo slash (/) tra il numero
di porta e il nome del protocollo può di fatto essere sia uno slash che
una virgola(,). L'uso della virgola nelle installazioni moderne è deprecato.
Questo file potrebbe essere distribuito su una rete che usa un servizio
di network-wide naming come Yellow Pages/NIS o BIND/Hesiod.
Un semplice
file services potrebbe essere così:
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 - non assegnato
telnet
23/tcp
Gli alias per un servizio possono essere al
massimo 35, a causa del modo in cui è scritta getservent(3)
.
Le righe
più lunghe di BUFSIZ caratteri (attualmente 1024) saranno ignorate da
getservent(3)
, getservbyname(3)
, e getservbyport(3)
. Comunque, ciò causa
anche un'analisi sbagliata delle riga successiva.
- /etc/services
- La
lista dei servizi di rete internet
- /usr/include/netdb.h
- Definizione di
_PATH_SERVICES
getservent(3)
, getservbyname(3)
, getservbyport(3)
,
setservent(3)
, endservent(3)
, protocols(5)
, listen(2)
, inetd.conf(5)
, inetd(8)
.
Assigned Numbers RFC, il più recente è il documento RFC 1700, anche noto
come STD0002.
Guida ai servizi Yellow Pages
Guida ai servizi BIND/Hesiod
Table of Contents
|