|
O HOWTO do NIS(YP)/NYS/NIS+ |
||
|---|---|---|
O código cliente do NIS+ para Linux foi desenvolvido para a biblioteca GNU C 2. Existe também um port para libc5 do Linux, já que a maioria das aplicações comerciais utilizavam essa biblioteca no passado, e não é possível recompilá-la usando glibc. Existem problemas com libc5 e NIS+: programas estáticos não podem ser unidos (linkados) a esta, e programas compilados com esta bibliteca não funcionarão com outras versões do libc5.
Para começar a utilizar, é necessária uma distribuição baseada em glibc, como Debian, Red Hat Linux ou SuSE Linux. Caso possua uma distribuição que não tem glibc 2.1.1 ou posterior, é necessário migrar para uma versão mais nova.
O software cliente NIS+ pode ser obtido de:
Site Diretório Nome do arquivo
ftp.gnu.org /pub/gnu/glibc glibc-2.3.2.tar.gz,
glibc-linuxthreads-2.3.2.tar.gz
ftp.kernel.org /pub/linux/utils/net/NIS+ nis-utils-1.4.1.tar.gz
|
Também é interessante visitar o site http://www.linux-nis.org/nisplus/ para maiores informações e as versões mais recentes do código-fonte.
IMPORTANTE: Para configurar um cliente NIS+ leia a documentação do NIS+ no Solaris para saber o que fazer no lado do servidor! Este documento aqui descreve apenas o que fazer no lado cliente.
Após instalar a nova libc e nis-tools, crie as credenciais para o novo cliente no servidor NIS+. Certifique-se de que portmap está rodando. Então verifique se máquina Linux tem a mesma hora/data que a do servidor NIS+. Para RPC seguro, existe apenas uma pequena janela de cerca de 3 minutos, na qual as credenciais são válidas. Uma boa idéia é executar xntpd em cáda máquina. Após isso, executar
domainname nisplus.domain. nisinit -c -H <NIS+ server> |
para abrir o arquivo de incialização. Leia a página do manual (man) do nisinit para maiores informações. Certifique-se que o domainname seja sempre setado após uma reinicialização. Caso não saiba qual o domínio NIS+ da sua rede, consulte o seu administrado de rede.
Agora deve-se modificar o arquivo /etc/nsswitch.conf. Certifique-se que o único serviço após publickey é nisplus ("publickey: nisplus"), e nada mais!
Então inicie keyserv e tenha certeza de que ele sempre será incializado imediatamente após portmap no momento da inicialização do sistema. Execute
keylogin -r |
para armazenar a chave secreta raiz no seu sistema.(Espro que você tenha adicionado a chave pública para o novo host no servidor NIS+, certo?).
niscat passwd.org_dir deve agora mostrar todas as entradas na base de dados passwd.
Quando o usuário se loga no sistema, ele precisa setar sua chave secreta para o keyserv. Isto é feito chamando "keylogin". O login do pacote shadow fará isso para o usuário, caso tenha sido compilado usando glibc 2.1. Para um login usando PAM, é necessário modificar o arquivo /etc/pam.d/login para usar pam_unix2, e não pwdb, pois este não suporta NIS+. Por exemplo::
#%PAM-1.0 auth required /lib/security/pam_securetty.so auth required /lib/security/pam_unix2.so set_secrpc auth required /lib/security/pam_nologin.so account required /lib/security/pam_unix2.so password required /lib/security/pam_unix2.so session required /lib/security/pam_unix2.so |
O arquivo Network Services switch (/etc/nsswitch.conf) determina a ordem de buscas realizadas quando determinada informação é requisitada, exatamente como o arquivo /etc/host.conf determina a forma como buscas de hosts são realizadas. Por exemplo, a linha
hosts: files nisplus dns |
Especifica que funções de busca de hosts devem primeiro procurar no arquivo local /etc/hosts, seguido por uma busca NIS+ e finalmente pelo servidor de nomes de domínio (/etc/resolv.conf e named), e que a partir de tal ponto, caso não seja encontrada a requisição correspondente, um erro é retornado.
Um bom arquivo /etc/nsswitch.conf para NIS+ é:
# # /etc/nsswitch.conf # # Um exemplo de arquivo de configuração Name Service Switch. Este arquivo deve ser # ordenado de forma que os serviços mais utilizados fiquem no começo. # # A entrada '[NOTFOUND=return]' significa que a busca por uma entrada deve parar # se a busca na entrada anterior não retornou nada. Note que se a busca anterior falhar # por qualquer outra razão (como por exemplo, nenhum servidor NIS respondendo), # então a busca continua com a próxima entrada. # # Entradas válidas são: # # nisplus Use NIS+ (NIS versão 3) # nis Use NIS (NIS versão 2), também chamada YP # dns Use DNS (Domain Name Service) # files Use os arquivos locais # db Use os bancos de dados em /var/db # [NOTFOUND=return] Pare de procurar caso não tenha encontrado até então. # passwd: compat group: compat shadow: compat passwd_compat: nisplus group_compat: nisplus shadow_compat: nisplus hosts: nisplus files dns services: nisplus [NOTFOUND=return] files networks: nisplus [NOTFOUND=return] files protocols: nisplus [NOTFOUND=return] files rpc: nisplus [NOTFOUND=return] files ethers: nisplus [NOTFOUND=return] files netmasks: nisplus [NOTFOUND=return] files netgroup: nisplus bootparams: nisplus [NOTFOUND=return] files publickey: nisplus automount: files aliases: nisplus [NOTFOUND=return] files |
|
Configurando o cliente NIS |
|
Configurando o servidor NIS |