SERVICES(5) Manuel de l'administrateur Linux SERVICES(5)
NOM
services - Liste des services internet.
DESCRIPTION
services est un fichier de texte ASCII fournissant une
correspondance entre un nom intelligible décrivant un ser
vice internet et l'ensemble numéro de port / protocole
utilisé.
Chaque programme réseau devrait consulter ce fichier pour
obtenir le numéro de port et le protocole sous-jacent au
service qu'il fournit. Les fonctions de la bibliothèque C
getservent(3), getservbyname(3), getservbyport(3), setser
vent(3), et endservent(3) permettent d'interroger ce
fichier depuis un programme.
Les numéros de ports sont affectés par le IANA (Internet
Assigned Numbers Authority), et leur politique actuelle
consiste à assigner à la fois les protocoles TCP et UDP à
chaque numéro de port.
Ainsi la plupart des services auront deux entrées, même si
elles n'utilisent que le protocole TCP.
Les numéros de ports en-dessous de 1024 ne peuvent être
assignés à une socket que par un programme Super-User
(voir bind(2), tcp(7), et udp(7).)
C'est ainsi que les clients se connectant sur ces ports de
petits numéros peuvent être sûrs que le service correspon
dant est une implémentation standard et non pas le brico
lage d'un utilisateur. Normalement les ports biens connus
(well-known) affectés par le IANA se situent dans cet
espace réservé au Super-User.
La présence d'une ligne indiquant un service dans le
fichier services ne signifie pas nécessairement que le
service en question est disponible sur la machine. Voir
inetd.conf(5) pour la configuration des services Internet
offerts. Notez que tous les services réseau ne sont pas
obligatoirement lancés par inetd(8), et n'apparaitront
donc pas toujours dans inetd.conf(5). En particulier les
serveurs de News (NNTP) et de courrier (SMTP) sont souvent
initialisés par le système dans les scripts de démarrage.
L'emplacement du fichier services est défini par la con
stante _PATH_SERVICES dans /usr/include/netdb.h. C'est
généralement /etc/services.
Chaque ligne décrivant un service est de la forme
service-name port/protocole [alias ...]
Linux 18 Octobre 1996 1
SERVICES(5) Manuel de l'administrateur Linux SERVICES(5)
où :
service-name
est le nom intelligible du service. La
différence majscule/minuscule est importante.
Souvent le programme client possède un nom rap
pelant celui du service.
port est le numéro de port (en décimal) utilisé pour
ce service.
protocol est le type de protocole utilisé, il doit s'agir
d'un nom déclaré dans le fichier protocols(5).
Les protocoles les plus courants sont tcp et
udp.
alias est une liste éventuelle d'autres noms se
référant au même service, séparés par des
espaces ou des tabulations (voir section BUGS
plus bas). Encore une fois, la différence
majuscule/minuscule est importante.
Les différents champs sont séparés par des espaces ou des
tabulations. Un signe # débute un commentaire, qui
s'étendra jusqu'à la fin de la ligne. Les lignes blanches
sont ignorées.
Le champ service-name doit débuter à la première colonne
du fichier, car les espaces en tête de ligne ne sont pas
éliminés.
service-name peut contenir n'importe quel caractère
imprimable, sauf espace et tabulation. Il est néanmoins
déconseille d'utiliser d'autres caractères que a-z, 0-9,
et le tiret (-).
Les lignes ne se conformant pas à ce format sont ignorées
silencieusement par getservent(3), getservbyname(3), et
getservbyport(3), mais ce comportement peut changer.
A titre de compatibilité avec les versions précédentes, le
slash (/) entre le numéro de port et le nom du protocole
peut être egalement remplacé par une virgule, mais c'est
déconseillé.
Ce fichier peut être diffusé sur le réseau en utilisant
des services comme Yellow Pages/NIS ou BIND/Hesiod.
EXEMPLE
$ ls -l /etc/services
-rw-r--r-- 1 root root 3432 Feb 16 1996 /etc/services
$ cat /etc/services
Linux 18 Octobre 1996 2
SERVICES(5) Manuel de l'administrateur Linux SERVICES(5)
...
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
...
$
BUGS
Il y a un maximum de 35 alias par service à cause des lim
itations de getservent(3).
Les lignes plus longues que BUFSIZ (actuellement 1024)
sont ignorées par getservent(3), getservbyname(3), et get
servbyport(3). De plus la ligne suivante sera mal
interprétée.
FICHIERS
/etc/services
La liste des services internet.
/usr/include/netdb.h
Définition de _PATH_SERVICES.
VOIR AUSSI
getservent(3), getservbyname(3), getservbyport(3), setser
vent(3), endservent(3), protocols(5), listen(2),
inetd.conf(5), inetd(8).
RFC "Assigned Numbers", actuellement RFC 1700, (AKA
STD0002)
Guide to Yellow Pages Service
Guide to BIND/Hesiod Service
TRADUCTION
Christophe Blaess, 1997.
Linux 18 Octobre 1996 3