Fichiers de noms

Publié le par Peck

Maintenant sur http://linux-attitude.fr/post/Fichiers-de-noms

Niveau
:
Résumé: /etc/{hosts,ethers,protocols,services}

Comme nous venons de le voir la bibliothèque libnss permet de faire la correspondance entre des noms et des identifiants. Cette correspondance peut être faite par des services réseaux automatisés ou par des fichiers qui se trouvent sur votre système.
Nous allons détailler ces derniers, notez qu'il n'ont pas toujours la priorité pour la résolution, celle-ci est choisie par le fichier /ect/nsswitch.conf.

IANA

L'IANA est l'organisme chargé d'attribuer des numéros dans toutes sortes de domaines sur internet. Nous la rencontrerons souvent dans les paragraphes qui suivent.


Protocols

Dans /etc/protocols on trouve la liste des identifiants des protocoles de communication comme TCP ou IP. Les plus importants à connaître sont IP(4), TCP(6) et UDP(17). En pratique vous ne les rencontrerez que rarement sauf si vous faites du réseau mais ça peut toujours servir. La liste des valeurs à jour se trouve sur le site de l'iana.


Services

Dans /etc/services on trouve la liste des associations port/service ainsi que le type de transfert associé (tcp ou udp). Je pourrais vous en citer un grand nombre d'important www (80), smtp(25), pop(110) ... mais limitons-nous. Il est très utile de les connaître lors de l'écriture d'un firewall ou la capture d'un flux. Le fichier /etc/services sera toujours votre aide mémoire en cas de port inconnu ou compliqué. Et pour toujours être à jour, il y a le site de l'iana.

Notons à propos de ces numéros que tous les ports inférieurs à 1024 sur un serveur unix ne peuvent être ouverts que par l'utilisateur root, donc un administrateur légèrement (si peu) plus digne de confiance qu'un simple utilisateur. De nos jour la différence ne se remarque (presque) plus car tout le monde est administrateur sur sa propre machine..

Cette correspondance peut se faire dans un grand nombre de cas de façon automatique. Ainsi les 2 lignes suivantes sont équivalentes :
$ telnet 127.0.0.1 80
$ telnet 127.0.0.1 www


Rpc

Dans /etc/rpc se trouve un reliquat de la grande époque, c'est-à-dire la correspondance des remote procedure call, outil un peu oublié de nos jours et qui ne sert quasiment plus qu'à NFS et NIS. Et c'est portmapper qui fournit le service associé.


Ethers

Dans /etc/ethers on fait la correspondance entre des adresses mac (ethernet) et des adresses IP. Ce fichier peut éventuellement servir à initialiser une table arp, mais il sert plus généralement de configuration au démon rarpd qui est une vieille méthode pour attribuer une IP à une machine (ancêtre de dhcpd).


Passwd

Dans le célèbre /etc/passwd on trouve les comptes du système. En résumé, rapidement : login:pass:id:group:text:home (man 5 passwd pour le détail).
De nos jours pass est remplacé par x, ce qui veut dire qu'il faut aller chercher la vraie valeur dans un autre fichier, mieux protégé. Un mot de passe invalide, par exemple ! ou * rend la connexion impossible.


Shadow

Nous parlions de fichier mieux protégé pour les mots de passe, hé bien il s'agit de lui. Accessible uniquement par root, il contient une version cryptée des mots de passe, ainsi que certaines information associée à leur sécurité : login:pass:last:next:validity:invalid:desactivated. Vous trouverez le détail dans man 5 shadow, mais en résumé, vous y trouvez un mot de passe crypté ainsi que des méthodes obligeant/interdisant le changement de mot de passe ou permettant de gérer la désactivation du compte.


Group

Dans /etc/group se trouve la liste des groupes du système et la listes des utilisateurs qui constituent ce groupe. Le format est plutôt simple, man 5 group vous renseignera mieux que moi.

Fait marquant, il est possible d'attribuer un mot de passe à un groupe (commande gpasswd) créant au passage un fichier gshadow. Ceci peut parfois être utile pour donner accès à un groupe de travail sans avoir à changer le groupe de tous les participants. Par exemple, on peut gréer le groupe coderz qui autoriserait toutes les personnes ayant le mot de passe du groupe de travailler sur les fichiers appartenant à coderz.

Notons que la connexion à un nouveau groupe avec la commande newgrp demande un mot de passe, mais surtout elle change le groupe primaire. C'est-à-dire que c'est le groupe de travail qui est changé, celui avec lequel on crée des fichiers. Ce qui diffère des groupes secondaires qui servent plus à donner des droit d'accès que de création de fichier.


Networks

/etc/networks est un fichier peu utilisé si ce n'est par les commandes route et netstat. Il permet de faire correspondre un réseau IP à un nom.


Hosts

Et enfin, le dernier, mais pas des moindres, /etc/hosts fait la correspondance entre IP et noms de domaine. Il fut un temps où le DNS n'existait pas. Il existait tout comme pour /etc/services un gros fichiers hosts que tout le monde se partageait.

Depuis, le dns et sa hiérarchie à été inventé (ouf) et tout est devenu plus simple. Mais ce fichier porte toujours son intérêt. Il est en effet, en général, prioritaire sur le dns. Il peut donc servir à remplacer temporairement un nom, par exemple pour tester un futur changement dans le DNS ou parce que vous voulez l'utiliser uniquement en local.

Ainsi vous pouvez définir des alias sympathiques pour vos machines. youpi.tralala.machine.p.goret.net pourra être renommée plouf ce qui vous simplifiera grandement la vie. De plus vous n'avez aucune hiérarchie ou convention de nommage à respecter.



Voila, fin du premier tour des tous les petits fichiers qui peuplent votre /etc !

Publié dans admin

Commenter cet article