Linux |
CentOS 5.3 |
|
services(5) |
services − Liste des services Internet. |
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 super-utilisateur (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 super-utilisateur. 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 ignorées silencieusement 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. |
$ 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 ... $ |
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. |
/etc/services |
La liste des services internet. |
/usr/include/netdb.h |
Définition de _PATH_SERVICES. |
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 |
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 5 juillet 2006. 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=en man 5 services ». N’hésitez pas à signaler à l’auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel. |
services(5) |