Si tout fonctionne correctement (comme cela devrait être), vous devriez être capable de vérifier votre installation avec quelques commandes simples. Supposons que le fichier de mots de passe soit géré par NIS, la commande
% ypcat passwd
devrait alors vous donner le contenu du fichier des mots de passe. La commande
% ypmatch id_utilisateur passwd
(où id_utilisateur est le nom de login d'un utilisateur) devrait
vous donner l'entrée de l'utilisateur dans le fichier des mots de passe NIS.
Les commandes ypcat
et ypmatch
doivent être incluses
dans la distribution du NIS (ou NYS) traditionnel.
Si un utilisateur ne peut pas se connecter, lancez le programme suivant sur la machine cliente :
#include <stdio.h>
#include <pwd.h>
#include <sys/types.h>
int
main(int argc, char *argv[])
{
struct passwd *pwd;
if(argc != 2)
{
fprintf(stderr,"Usage: getwpnam username\n");
exit(1);
}
pwd=getpwnam(argv[1]);
if(pwd != NULL)
{
printf("name.....: [%s]\n",pwd->pw_name);
printf("password.: [%s]\n",pwd->pw_passwd);
printf("user id..: [%d]\n", pwd->pw_uid);
printf("group id.: [%d]\n",pwd->pw_gid);
printf("gecos....: [%s]\n",pwd->pw_gecos);
printf("directory: [%s]\n",pwd->pw_dir);
printf("shell....: [%s]\n",pwd->pw_shell);
}
else
fprintf(stderr,"User \"%s\" not found!\n",argv[1]);
exit(0);
}
Faites tourner ce programme avec le nom de l'utilisateur en
paramètre. Il va afficher toutes les informations renvoyées
par la fonction getpwnam
concernant l'utilisateur.
Cela peut vous permettre de savoir si l'entrée est correcte. Un problème
assez fréquemment rencontré est une redéfinition du champ de mot
de passe par un "*".