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 service 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), setservent(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 superutilisateur (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 correspondant est une implémentation standard et non pas le bricolage d'un utilisateur. Normalement les ports biens connus (well-known) affectés par le IANA se situent dans cet espace réservé au superutilisateur. 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'apparaîtront 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 constante _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 ...]

où :

service-name
    est le nom intelligible du service. La casse (différence majuscule/minuscule) est importante. Souvent, le programme client possède un nom rappelant 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 BOGUES plus bas). Encore une fois, la casse (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éconseillé d'utiliser d'autres caractères que a-z, 0-9, et le tiret « - ». Les lignes ne se conformant pas à ce format sont silencieusement ignorées par getservent(3), getservbyname(3), et getservbyport(3), mais ce comportement peut changer. À titre de compatibilité avec les versions précédentes, la barre oblique « / » entre le numéro de port et le nom du protocole peut être également remplacée 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.

FICHIERS

/etc/services
    La liste des services internet.

</usr/include/netdb.h>
    Définition de _PATH_SERVICES.

BOGUES
Il y a un maximum de 35 alias par service à cause des limitations de getservent(3). Les lignes plus longues que BUFSIZ (actuellement 1024) sont ignorées par getservent(3), getservbyname(3), et getservbyport(3). De plus, la ligne suivante sera mal interprétée.

EXEMPLE
$ ls -l /etc/services
-rw-r--r--   1 root   root   3432 Feb 16  1996 /etc/services
$ cat /etc/services
   ...
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
   ...
$

VOIR AUSSI
listen(2), endservent(3), getservbyname(3), getservbyport(3), getservent(3), setservent(3), inetd.conf(5), protocols(5), inetd(8) RFC "Assigned Numbers", actuellement RFC 1700, (AKA STD0002) Guide to Yellow Pages Service Guide to BIND/Hesiod Service

TRADUCTION

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 18 octobre 1996 et révisée le 10 décembre 2007.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 5 services ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.