Hvis alt er bra (som det burde være), skal du kunne verifisere din installasjon med et par enkle kommandoer. Anta for eksempel at din passwd fil kjøres via NIS, da skal kommandoen
% ypcat passwd
gi deg innholdet i din NIS passwd fil. Kommandoen
% ypmatch userid passwd
(hvor userid er login navnet til en bruker) skal gi deg den brukerens linje i NIS passwd fila. "ypcat" og "ypmatch" programmene skal være inkludert i distribusjonen av tradisjonell NIS eller NYS.
Hvis en bruker ikke kan logge inn, kjør følgende program på klienten:
#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);
}
Ved å kjøre dette programmet med brukernavnet som parameter, vil du få listet all informasjon getpwnam funksjonen returnerer for denne brukeren. Det skal vise deg hva som er galt. Det vanligste problemet er at passord feltet er overskrevet med en "*".
GNU C Library 2.1 (glibc 2.1) kommer med et program kallt getent. Bruk dette programmet istedetfor det over på et slikt system. Du bør prøve:
getent passwd
eller
getent passwd login