services - Elenco dei servizi di rete internet
services è un normale file ASCII che fornisce una mappa tra i nomi
comprensibili dei servizi internet e i nomi delle porte e i tipi di protocolli
loro assegnati. Ogni programma di rete dovrebbe leggere questo file per sapere
il numero della porta (e il protocollo) del suo servizio. Le routine della
libreria C
getservent(3),
getservbyname(3),
getservbyport(3),
setservent(3) e
endservent(3)
supportano l'interrogazione di questo file da parte dei programmi.
I numeri di porta sono assegnati da 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 client che si connettono a una
porta low numbered possano fare affidamento sul fatto che il servizio in
esecuzione sulla porta sia l'implementazione standard, e non un servizio
malevolo 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 sia 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 dunque questi non appariranno in
inetd.conf(5). In
particolare, i server per news (NNTP) e mail (SMTP) spesso sono inizializzati
dagli script di avvio del sistema.
La posizione del file
services è definita da
_PATH_SERVICES
in
<netdb.h>. Questa è di solito impostata a
/etc/services.
Ogni riga descrive un servizio, ed ha il seguente formato:
-
nome-servizio porta/protocollo [alias
...]
- dove:
- nome-servizio
- è il nome amichevole con il quale il servizio
è conosciuto e cercato dai programmi. È sensibile alle
maiuscole-minuscole. Spesso i programmi client prendono il nome dal
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
includono tcp e udp.
- aliases
- è una lista opzionale separata da spazi o tab di
altri nomi per questo servizio. Ancora, i nomi sono sensibili alle
maiuscole-minuscole.
Sia spazi che tab possono essere usati per separare i campi.
I commenti iniziano 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 vengono tolti.
nome-servizio può
essere composto da qualunque carattere stampabile ad esclusione di spazi e
tab, comunque dovrebbe essere usata una scelta conservativa di caratteri per
minimizzare i problemi di interoperabilità. Per esempio: a-z, 0-9 e
trattino (-) sono una scelta sensata.
Nel file non dovrebbero essere presenti righe che non corrispondano a questo
formato (attualmente esse sono scartate silenziosamente da
getservent(3),
getservbyname(3) e
getservbyport(3). In
ogni caso non si dovrebbe far affidamento su questo comportamento).
Questo file potrebbe essere distribuito su una rete che usa un servizio di
naming valido per tutta la rete come Yellow Pages/NIS o BIND/Hesiod.
Un file
services d'esempio 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
- /etc/services
- L'elenco dei servizi di rete internet
- <netdb.h>
- Definizione di _PATH_SERVICES
listen(2),
endservent(3),
getservbyname(3),
getservbyport(3),
getservent(3),
setservent(3),
inetd.conf(5),
protocols(5),
inetd(8)
Assigned Numbers RFC, il più recente è il documento
RFC 1700, anche noto come STD0002.
La traduzione italiana di questa pagina di manuale è stata creata da
Giovanni Bortolozzo <
[email protected]>, Alessandro Rubini
<
[email protected]>, Ottavio G. Rizzo <
[email protected]>, Giulio
Daprelà <
[email protected]>, Elisabetta Galli <
[email protected]> e
Marco Curreli <
[email protected]>
Questa traduzione è documentazione libera; leggere la
GNU
General Public License Versione 3 o successiva per le condizioni di
copyright. Non ci assumiamo alcuna responsabilità.
Per segnalare errori nella traduzione di questa pagina di manuale inviare un
messaggio a
[email protected]