====== Name Service Switch ====== Lorsqu'on fait un ls -l, nous voyons des usernames et des groupes propriétaires des fichiers. Lors d'un netstat, nous voyons de noms de protocoles et de port Idem pour DNS. Nous les voyons sous les formes de noms. Mais stockés dans le système de fichiers sous la forme de nombres ===== Qui fait la conversion ? ===== Name Service Switch bien-sûr. Librairies pour résolution de nom en nombre et inversement. N'importe quoi contenant la correspondance peut être utilisé : Fichiers, LDAP, NIS, etc. ===== Configuration ===== vim /etc/nsswitch NSS ne fait pas la résolution. Il définit comment la résolution est faites et dans quel ordre Par exemple, pour les noms de domaines, chercher d'abord dans un fichier,puis demander au serveur DNS hosts: files dns passwd: files ldap nisplus nis Pour faire une requête comme le système, utiliser la commande getent getent passwd 503. Qui porte le n° 503 dans la base utilisateur ? Demandera d'abord aux fichiers, puis à LDAP. ===== Avantages ===== Les méthodes de résolution ne sont pas stockées en dur dans les programmes. Par exemple, le programme ls s'adresse toujours à NSS pour la résolution. Il permet d'ajouter des modules qui peuvent être mis à jour séparément. Une seule librairie pour l'ensemble des programmes demandant ce service, et pas une librairie par programme. ===== Modules NSS ===== Comportent plusieurs fonctions avec le nom suivant : _nss_service_fonction Par exemple : _nss_files_gethostbyname Ces fonctions stockées dans des modules libnss_* dans /lib/ Si l'on veut modifier la façon dont s'opèrent la résolution d'un UID, on met simplement à jour le module /lib/libnss_files.so.2 On peut rajouter simplement un module Par exemple : libnss_ldap.so.2 so = shared objet : librairie ou module partagés