|
O HOWTO do NIS(YP)/NYS/NIS+ |
||
|---|---|---|
|
|
||
Caso tudo esteja certo (como já deveria estar, se este documento foi seguido corretamente ;-), deve ser possível verificar a instalação com alguns poucos comandos simples. Assumindo, por exemplo, que seu arquivo passwd seja fornecido pelo NIS, o comando
% ypcat passwd |
deverá retornar o conteúdo do seu arquivo NIS de senha. O comando
% ypmatch userid passwd |
(onde userid é o nome de login de um usuário qualquer) deve retornar a entrada do usuário no arquivo passwd do NIS. Os programas "ypcat" e "ypmatch" devem estar incluídos com sua distribuição do NIS ou NYS.
Caso um usuário não possa logar, compile e execute o seguinte programa no 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,"Modo de usar: getwpnam nome-do-usuario\n");
exit(1);
}
pwd=getpwnam(argv[1]);
if(pwd != NULL)
{
printf("nome.....: [%s]\n",pwd->pw_name);
printf("senha....: [%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("diretorio: [%s]\n",pwd->pw_dir);
printf("shell....: [%s]\n",pwd->pw_shell);
}
else
fprintf(stderr,"Usuario \"%s\" nao encontrado!\n",argv[1]);
exit(0);
}
|
Executando este programa com o nome de usuário como parâmetro irá mostrar toda a informação que a função getpwnam retorna para este usuário. Isto deverá mostrar qual entrada está incorreta. O problema mais comum é que o campo de senha está sobrescrito com um "*".
A biblioteca GNU C 2.1 (glibc 2.1) vem com uma ferramenta chamada getent. Este programa deve ser usado ao invés do mostrado acima em tais sistemas. É possível tentar:
getent passwd |
ou
getent passwd login |
|
Configurando o servidor NIS |
|
Criando e atualizando mapas NIS |