Si seulement un ou deux clients sont confrontés à des symptômes indiquant une difficulté au niveau de la liaison NIS, les problèmes viennent probablement de ces clients. Toutefois, si de nombreux clients NIS ne parviennent pas à correctement créer une liaison, le problème se situe probablement sur un ou plusieurs serveurs NIS. Reportez-vous à la section Dépannage des problèmes de NIS affectant plusieurs clients
Voici quelques problèmes de NIS fréquents affectant un seul client :
ypbind problème d'exécution du démon sur le client
Un client rencontre des problèmes tandis que les autres clients du même sous-réseau fonctionnent normalement. Sur le client affecté, exécutez la commande ls –l dans un répertoire contenant des fichiers appartenant à plusieurs utilisateurs (comme /usr), y compris des fichiers non inclus dans le fichier /etc/passwd. Si l'affichage qui en résulte liste sous forme de nombres (et non de noms) des propriétaires de fichiers qui ne se situent pas dans le fichier /etc/passwd local, le service NIS ne fonctionne pas sur le client.
Ces symptômes indiquent généralement que le processus ypbind du client n'est pas en cours d'exécution. Vérifiez comme suit que les services client NIS sont en cours d'exécution :
client# svcs \*nis\* STATE STIME FMRI disabled Sep_01 svc:/network/nis/domain:default disabled Sep_01 svc:/network/nis/client:default
Si l'état des services est défini sur disabled, connectez-vous en tant qu'utilisateur root, puis démarrez comme suit le service client NIS :
client# svcadm enable network/nis/domain client# svcadm enable network/nis/client
Nom de domaine manquant ou incorrect
Un client rencontre des problèmes tandis que les autres clients fonctionnent normalement, mais le démon ypbind est en cours d'exécution sur ce client. Dans ce cas, il se peut que le client ait défini le domaine de manière incorrecte.
Exécutez la commande domainname sur le client pour déterminer le nom de domaine défini :
client# domainname example.com
Comparez la sortie avec le nom de domaine réel dans le répertoire /var/yp sur le serveur maître NIS. Comme indiqué dans l'exemple suivant, le domaine NIS réel est affiché en tant que sous-répertoire dans le répertoire /var/yp :
client# ls -l /var/yp -rwxr-xr-x 1 root Makefile drwxr-xr-x 2 root binding drwx------ 2 root example.com
Si le nom de domaine affiché sur le client dans la sortie de la commande domainname est différent du nom de domaine de serveur indiqué en tant que sous-répertoire dans le répertoire /var/yp, le nom de domaine de la propriété config/domain du service nis/domain est incorrect. Réinitialisez le nom de domaine NIS. Pour obtenir des instructions, reportez-vous à la section Définition d’un nom de domaine NIS de machine du manuel Utilisation des services de noms et d’annuaire Oracle Solaris 11.2 : DNS et NIS .
Client non lié à un serveur
Si votre nom de domaine est défini correctement et que le démon ypbind est en cours d'exécution, mais que les commandes sont toujours bloquées, assurez-vous que le client est lié à un serveur en exécutant la commande ypwhich. Si vous venez de démarrer le démon ypbind, exécutez la commande ypwhich. Vous devrez peut-être exécuter la commande ypwhich plusieurs fois. En règle générale, la première fois que vous utilisez le commande, elle signale que le domaine n'est pas lié. La deuxième fois que vous exécutez la commande, tout doit s'exécuter normalement.
Aucun serveur disponible
Si votre nom de domaine est défini correctement et que le démon ypbind est en cours d'exécution, mais que vous recevez des messages indiquant que le client ne peut pas communiquer avec le serveur, vérifiez les éléments suivants :
Le client dispose-t-il d'un fichier /var/yp/binding/domainname/ypservers contenant une liste des serveurs auxquels se lier ? Pour afficher les serveurs NIS sélectionnés, exécutez la commande svcprop –p config/ypservers nis/domain. Dans le cas contraire, exécutez la commande ypinit –c pour indiquer les serveurs auxquels ce client doit se lier, par ordre de préférence.
Si le client ne dispose pas de fichier /var/yp/binding/domainname/ypservers, y a-t-il suffisamment de serveurs répertoriés au cas où un ou deux serveurs seraient indisponibles ? Pour afficher les serveurs NIS sélectionnés, exécutez la commande svcprop –p config/ypservers nis/domain. Dans le cas contraire, ajoutez des serveurs supplémentaires à la liste en exécutant la commande ypinit –c.
Les serveurs NIS sélectionnés possèdent-ils des entrées dans le fichier /etc/inet/hosts ? Pour afficher les serveurs NIS sélectionnés, exécutez la commande svcprop –p config/ypservers nis/domain. Si ces hôtes ne se trouvent pas dans le fichier /etc/inet/hosts local, ajoutez les serveurs aux cartes NIS hosts et recréez vos cartes en exécutant les commandes ypinit –c ou ypinit –s. Pour plus d'informations, reportez-vous à la section Utilisation des cartes NIS du manuel Utilisation des services de noms et d’annuaire Oracle Solaris 11.2 : DNS et NIS .
Le commutateur du service de noms est-il configuré pour vérifier le fichier hosts local du système, en plus de NIS ? Pour plus d'informations, reportez-vous au Chapitre 2, A propos du commutateur du service de noms du manuel Utilisation des services de noms et d’annuaire Oracle Solaris 11.2 : DNS et NIS .
Le commutateur du service de noms est-il configuré pour d'abord vérifier files pour services, puis rpc ?
Affichages ypwhich incohérents
Si vous exécutez plusieurs fois la commande ypwhich sur le même client, le résultat affiché varie car le serveur NIS change. Ce comportement est normal. La liaison du client NIS au serveur NIS change au fil du temps lorsque le réseau ou les serveurs NIS sont occupés. Le réseau se stabilise dès que possible à un point où tous les clients obtiennent un temps de réponse acceptable de la part des serveurs NIS. Tant que le client reçoit un service NIS, sa provenance n'a pas d'importance. Par exemple, un serveur NIS peut recevoir ses propres services NIS à partir d'un autre serveur NIS du réseau.
Procédure à suivre lorsqu'aucune liaison au serveur n'est possible
Dans les cas extrêmes où aucune liaison au serveur local n'est possible, utilisez l'option ypset avec la commande ypbind pour créer une liaison temporaire avec un autre serveur sur un autre réseau ou sous-réseau, si disponible. Notez que pour utiliser l'option –ypset, vous devez démarrer le démon ypbind à l'aide des options –ypset ou –ypsetme. Pour plus d'informations, reportez-vous à la page de manuel ypbind(1M).
# /usr/lib/netsvc/yp/ypbind -ypset
Pour obtenir une autre méthode, reportez-vous à la sectionLiaison à un serveur NIS spécifique du manuel Utilisation des services de noms et d’annuaire Oracle Solaris 11.2 : DNS et NIS .
![]() | Mise en garde - Pour des raisons de sécurité, l'utilisation des options –ypset ou –ypsetme est déconseillée. N'utilisez ces options qu'à des fins de débogage et dans des circonstances contrôlées. L'utilisation des options –ypset ou –ypsetme peut engendrer de graves violations de sécurité. Au cours de l'exécution des démons, toute personne peut altérer les liaisons au serveur et permettre ainsi l'accès non autorisé à des données sensibles. Si vous devez démarrer le démon ypbind à l'aide de l'une de ces options, interrompez le processus ypbind après avoir corrigé le problème, puis redémarrez-le sans spécifier ces options. Redémarrez le démon ypbind comme suit : # svcadm enable -r svc:/network/nis/client:defaultVoir la page de manuel ypset(1M). |
Panne du démon ypbind
Si le démon ypbind tombe en panne presque instantanément à chaque fois que vous le démarrez, consultez le journal du service svc:/network/nis/client:default pour rechercher l'origine du problème. Vérifiez comme suit la présence du démon rpcbind :
% ps -e |grep rpcbind
Si le démon rpcbind n'est pas présent, disparaît ou se comporte de manière étrange, consultez le fichier journal svc:/network/rpc/bind:default. Pour plus d'informations, reportez-vous aux pages de manuel rpcbind(1M) et rpcinfo(1M).
Vous pourrez peut-être communiquer avec le démon rpcbind sur le client rencontrant un problème à partir d'un système fonctionnant normalement.
Exécutez la commande suivante à partir d'un système opérationnel :
% rpcinfo client
Si le démon rpcbind sur le système rencontrant un problème fonctionne correctement, la sortie suivante s'affiche :
program version netid address service owner ... 100007 3 udp6 ::.191.161 ypbind 1 100007 3 tcp6 ::.135.200 ypbind 1 100007 3 udp 0.0.0.0.240.221 ypbind 1 100007 2 udp 0.0.0.0.240.221 ypbind 1 100007 1 udp 0.0.0.0.240.221 ypbind 1 100007 3 tcp 0.0.0.0.250.107 ypbind 1 100007 2 tcp 0.0.0.0.250.107 ypbind 1 100007 1 tcp 0.0.0.0.250.107 ypbind 1 100007 3 ticlts 2\000\000\000 ypbind 1 100007 2 ticlts 2\000\000\000 ypbind 1 100007 3 ticotsord 9\000\000\000 ypbind 1 100007 2 ticotsord 9\000\000\000 ypbind 1 100007 3 ticots @\000\000\000 ypbind 1 ...
Si aucune adresse ne s'affiche (votre système présentera différentes adresses), le démon ypbind n'a pas pu enregistrer ses services. Réinitialisez le système et exécutez à nouveau la commande rpcinfo. Si les processus ypbind sont présents et qu'ils changent à chaque fois vous que vous essayez de redémarrer le service NIS, réinitialisez le système même si le démon rpcbind est en cours d'exécution.