Ha minden rendben (ahogy lennie kellene), néhány egyszerű utasítással ellenőrizheted a telepítést. Feltételezve, hogy például a jelszó állományodat a NIS adja, a
% ypcat passwd
utasításnak vissza kell adnia a NIS jelszó állományod tartalmát. A
% ypmatch userid passwd
utasítás (ahol a userid egy találomra választott felhasználó azonosítója) vissza kell, hogy adja a felhasználó NIS jelszó állomány beli bejegyzését. Az "ypcat" és az "ypmatch" programokat a hagyományos NIS vagy NYS disztribúciód tartalmazza.
Ha egy felhasználó nem tud bejelentkezni, indítsd el a következő programot a kliensen:
#include <stdio.h>
#include <pwd.h>
#include <sys/types.h>
int
main(int argc, char *argv[])
{
struct passwd *pwd;
if(argc != 2)
{
fprintf(stderr,"Használat: getwpnam felhasználónév\n");
exit(1);
}
pwd=getpwnam(argv[1]);
if(pwd != NULL)
{
printf("név..............: [%s]\n",pwd->pw_name);
printf("jelszó...........: [%s]\n",pwd->pw_passwd);
printf("felhasználó id...: [%d]\n", pwd->pw_uid);
printf("csoport id.......: [%d]\n",pwd->pw_gid);
printf("gecos............: [%s]\n",pwd->pw_gecos);
printf("könyvtár.........: [%s]\n",pwd->pw_dir);
printf("parancsértelmező.: [%s]\n",pwd->pw_shell);
}
else
fprintf(stderr,"A(z) \"%s\" felhasználó nem található!\n",argv[1]);
exit(0);
}
Ezt a programot futtatva a felhasználó nevével, mint paraméterrel, kiírja mindazt az információt, amit a getpwnam függvény ad vissza erre a felhasználóra. Ennek meg kell mutatnia, hogy melyik bejegyzés hibás. A leggyakoribb probléma az, hogy a jelszó mező "*"-al felül lett írva.
A GNU C 2.1-es könyvtár (glibc 2.1) egy getent eszközzel jön. Ezt használhatod a fenti program helyett egy ilyen rendszeren. Kipróbálhatod:
getent passwd
vagy
getent passwd login