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 dcrivant un service internet et l'ensemble
numro de port / protocole utilis. Chaque programme rseau devrait
consulter ce fichier pour obtenir le numro de port et le protocole
sous-jacent au service qu'il fournit. Les fonctions de la bib-
liothque C getservent(3), getservbyname(3), getservbyport(3), setser-
vent(3), et endservent(3) permettent d'interroger ce fichier depuis un
programme.
Les numros de ports sont affects par le IANA (Internet Assigned
Numbers Authority), et leur politique actuelle consiste assigner
la fois les protocoles TCP et UDP chaque numro de port. Ainsi la
plupart des services auront deux entres, mme si elles n'utilisent
que le protocole TCP.
Les numros de ports en-dessous de 1024 ne peuvent tre assigns
une socket(2,7,n) que par un programme Super-User (voir bind(2,n,1 builtins)(2), tcp(7), et
udp(7). C'est ainsi que les clients se connectant sur ces ports de
petits numros peuvent tre srs que le service correspondant est
une implmentation standard et non pas le bricolage d'un utilisateur.
Normalement les ports biens connus (well-known) affects par le IANA
se situent dans cet espace rserv au Super-User.
La prsence d'une ligne indiquant un service dans le fichier services
ne signifie pas ncessairement 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 rseau ne sont
pas obligatoirement lancs par inetd(8), et n'apparatront donc pas
toujours dans inetd.conf(5). En particulier les serveurs de News
(NNTP) et de courrier (SMTP) sont souvent initialiss par le systme
dans les scripts de dmarrage.
L'emplacement du fichier services est dfini par la constante
_PATH_SERVICES dans /usr/include/netdb.h. C'est gnralement
/etc/services.
Chaque ligne dcrivant un service est de la forme
service-name port/protocole [alias ...]
o :
service-name
est le nom intelligible du service. La diffrence majus-
cule/minuscule est importante. Souvent le programme client
possde un nom rappelant celui du service.
port est le numro de port (en dcimal) utilis pour ce ser-
vice.
protocol est le type de protocole utilis, il doit s'agir d'un nom
dclar dans le fichier protocols(5). Les protocoles les
plus courants sont tcp et udp.
alias est une liste ventuelle d'autres noms se rfrant au
mme service, spars par des espaces ou des tabulations
(voir section BOGUES plus bas). Encore une fois, la
diffrence majuscule/minuscule est importante.
Les diffrents champs sont spars par des espaces ou des tabula-
tions.
Un signe # dbute un commentaire, qui s'tendra jusqu' la fin de la
ligne. Les lignes blanches sont ignores.
Le champ service-name doit dbuter la premire colonne du fichier,
car les espaces en tte de ligne ne sont pas limins. service-name
peut contenir n'importe quel caractre imprimable, sauf espace et tab-
ulation. Il est nanmoins dconseille d'utiliser d'autres car-
actres que a-z, 0-9, et le tiret (-).
Les lignes ne se conformant pas ce format sont ignores silen-
cieusement par getservent(3), getservbyname(3), et getservbyport(3),
mais ce comportement peut changer.
A titre de compatibilit avec les versions prcdentes, le slash (/)
entre le numro de port et le nom du protocole peut tre galement
remplac par une virgule, mais c'est dconseill.
Ce fichier peut tre diffus sur le rseau 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
...
netstat 15/tcp
qotd 17/tcp quote
msp 18/tcp # message send(2,n) protocol
msp 18/udp # message send(2,n) protocol
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
ftp 21/tcp
# 22 - unassigned
telnet 23/tcp
...
$
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 ignores
par getservent(3), getservbyname(3), et getservbyport(3). De plus la
ligne suivante sera mal interprte.
FICHIERS
/etc/services
La liste des services internet.
/usr/include/netdb.h
Dfinition de _PATH_SERVICES.
VOIR AUSSI
getservent(3), getservbyname(3), getservbyport(3), setservent(3), end-
servent(3), protocols(5), listen(1,2,7)(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, 1996-2003.
LDP 25 juillet 2003 SERVICES(5)