NSSWITCH.CONF(5) | Manual do Programador Linux | NSSWITCH.CONF(5) |
nsswitch.conf - Base de dados do sistema e arquivo de configuração para troca de serviço de nomes
Várias funções na Biblioteca C precisam ser configuradas para trabalhar corretamente no ambiente local. Tradicionalmente, este modo se faz com o uso de arquivos (por exemplo, '/etc/passwd'), mas outros serviços de nomes (como o Serviço de Informação de Rede (NIS) e o Serviço de Nome de Domínio (DNS)) se torna popular, e estão em partes dentro da Biblioteca C, usualmente com um ordem de procura fixa.
A libc5 do Linux com suporte a NYS e a Biblioteca GNU C 2.x (libc.so.6) contém uma solução clara deste problema. Ela é desenhada em cima de um método usado pela Sun Microsystems na Biblioteca C do Solaris 2. Nós seguimos os nomes deles e chamamos este esquema de "Name Service Switch" (NSS). As fontes para a "databases" e a ordem de procura deles são especificadas no arquivo /etc/nsswitch.conf .
A base de dados seguinte está disponível no NSS:
Um exemplo, o arquivo /etc/nsswitch.conf pode ser visto como (Isto é o padrão se /etc/nsswitch.conf estiver faltando):
A primeira coluna é a base de dados como você pode supor a partir da tabela acima. O resto da linha especifica como o processo de visualização trabalha. Você pode especifiar o modo de trabalho para cada base de dados individualmente.
As especificações de configuração para cada base de dados podem conter dois itens diferentes:
Para a libc5, as especificações de serviço permitidas são 'files', 'nis' e 'nisplus'. Para máquinas, você pode especificar 'dns' como um serviço extra, para passwd e group 'compat', mas não para shadow.
Para glibc, você terá um arquivo chamado de /lib/libnss_SERVICE.so.X para todo SERVICE que você estiver usando. Em uma instalação padrão, você pode usar 'files', 'db', 'nis' e 'nisplus'. Para máquinas, você pode especificar 'dns' como serviços extras, para passwd, group e shadow 'compat'. Estes serviços não podem ser usados pela libc5 com NYS. O número de versão X é 1 para glibc 2.0 e 2 para glibc 2.1.
O segundo item na especificação concede ao usuário controle fino no processo de visualização. Itens de ação são colocados entre dois nomes de serviço e são escritos entre parentesis. A forma geral é:
onde
O tipo de letras é insignificante. O valor STATUS é o resultado de uma chamada para a função de visualização do serviço especificado. Eles significam:
A Biblioteca do Linux libc5 sem o suporte a NYS não tem o seletor de nome de serviço, mas pode permitir ao usuário muitas politícas de controle. Em /etc/passwd você pode ter entradas da forma +user ou +@netgroup (inclui o usuário especificado a partir do mapa de passwd do NIS), -user ou -@netgroup (retira o usuário especificado) e + (incluí todo usuário, exceto os excluídos, a partir do mapa de passwd do NIS). Então muitas pessoas somente colocam um + no final de /etc/passwd para incluir tudo a partir do NIS, a seleção forneçe uma alternativa rápida para este caso ('passwd: files nis') o qual não requer a simples entrada + em /etc/passwd, /etc/group e /etc/shadow. Se isto não é suficiente, o serviço NSS 'compat' fornece a semântica completa +/-. Por padrão, a origem é 'nis', mas isto pode ser sobreposto especificando o 'nisplus' como origem para as falsas bases de dados passwd_compat, group_compat e shadow_compat. Esta falsa base de dados somente está disponível na Biblioteca GNU C.
Um serviço nomeado de SERVICE é implementado por um objeto biblioteca nomeada, e compatilhada, libnss_SERVICE.so.X que fica no diretório /lib.
Dentro de cada processo que use nsswitch.conf, o arquivo inteiro é lido somente uma vez; se o arquivo é alterado posteriormente, o processo irá continuar usando as antigas configurações.
Com o Solaris, não é possivel ligar programas estaticamente usando o serviço NSS. Com o Linux, isto não é problema.
André L. Fassone Canova <lonelywolf@techno.com.br> (tradução) Roberto Selbach Teixeira <robteix@zaz.com.br> (revisão)
17/01/1999 | Linux |