10. Verifica dell'installazione di NIS/NYS

Se ogni cosa è a posto (come dovrebbe essere), c'è la possibilità di > verificare l'installazione con pochi e semplici comandi. Si assuma, per esempio, che il file passwd sia gestito da NIS, il comando

    % ypcat passwd

dovrebbe restituire i contenuti del file passwd di NIS. Il comando

    % ypmatch userid passwd

(dove userid è il nome di login di un utente arbitrario) dovrebbe restituire la voce dell'utente nel file passwd di NIS. I programmi "ypcat" e "ypmatch" dovrebbero essere inclusi con la distribuzione del NIS tradizionale o del NYS.

Se un utente non riesce a fare il login, eseguire il seguente programma da un client:
#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);
}

Eseguendo il programma con il nome dell'utente (username) come parametro, stamperà tutte le informazioni che la funzione getpwnam restituisce per questo utente. Questo dovrebbe mostrare quale voce non è corretta. Il problema più comune è che il campo della password è stato sovrascritto con un "*".

GNU C Library 2.1 (glibc 2.1) contiene uno strumento chiamato getent. Si usi questo programma invece di quello sopra in un sistema di questo tipo. Si può provare:
   getent passwd
o
   getent passwd login