Si tout fonctionne correctement (comme cela doit être), vous devriez être capable de vérifier 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 inclus
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);
}
Faîtes 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 "*".
Chapitre suivant, Chapitre Précédent
Table des matières de ce chapitre, Table des matières générale
Début du document, Début de ce chapitre