NOME¶
nsswitch.conf - Base de dados do sistema e arquivo de configuração
para troca de serviço de nomes
DESCRIÇÃO¶
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:
- aliases
- aliases de correio eletrônico, usado pelo sendmail(8).
Atualmente ignorada.
- ethers
- Números da Ethernet.
- group
- Grupos de usuários, usado pelas funções
getgrent(3).
- hosts
- Números e nomes das máquinas, usado por
gethostbyname(3) e funções similares.
- netgroup
- Lista longa da rede de máquinas e usuários, usado para
regras de acesso. Bibliotes C antes da glibc 2.1 somente suportavam grupos
de rede sobre NIS.
- network
- Número e nomes da rede, usado pelas funções
getnetent(3).
- passwd
- Senha do usuários, usado pelas funções
getpwent(3).
- protocols
- Protocolos de rede, usado pelas funções
getprotoent(3).
- publickey
- Chaves públicas e privadas para Secure_RPC usado por NFS e
NIS+.
- rpc
- Número se nomes para processo de chamada remota, usado por
getrpcbyname(3) e funções similares.
- services
- Serviços de rede, usado pelas funções
getservent(3).
- shadow
- Senha Shadow de usuários, usado por getspnam(3).
Um exemplo, o arquivo
/etc/nsswitch.conf pode ser visto como (Isto
é o padrão se
/etc/nsswitch.conf estiver faltando):
- passwd:
- compat
- group:
- compat
- shadow:
- compat
- hosts:
- dns [!UNAVAIL=return] files
- networks:
- nis [NOTFOUND=return] files
- ethers:
- nis [NOTFOUND=return] files
- protocols:
- nis [NOTFOUND=return] files
- rpc:
- nis [NOTFOUND=return] files
- services:
- nis [NOTFOUND=return] files
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:
- * A especificação do serviço como 'files', 'db', ou
'nis'.
- * A reação na visualização do resultado como
'[NOTFOUND=return]'.
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
- STATUS => success | notfound | unavail | tryagain
- ACTION => return | continue
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:
- success
- Nenhum erro ocorreu e a entrada procurada é devolvida. A
ação padrão para isto é 'return'.
- notfound
- O processo de visualização foi feito, mas o valor desejado
não foi achado. A ação padrão para isto
é 'continue'.
- unavail
- O serviço está indisponível permanentemente. Isto
pode significar que o arquivo não está disponível,
ou, para DNS, que o servidor não esta disponível ou que
não permite requisições. A ação
padrão para isto é
- tryagain
- O serviço está temporariamente indisponível. Isto
pode significar que um 'file' está travado ou que o servidor
não acessa mais conexões atualmente. A ação
padrão para isto é 'continue'.
Interação com a sintaxe +/- (modo de compatibilidade)¶
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.
ARQUIVOS¶
Um serviço nomeado de SERVICE é implementado por um objeto
biblioteca nomeada, e compatilhada,
libnss_SERVICE.so.X que fica
no diretório
/lib.
- O arquivo de configuração
- /etc/nsswitch.conf
- /lib/libnss_compat.so.X
- implementa a fonte 'compat' para glibc2
- /lib/libnss_db.so.X
- implementa a fonte 'db' para glibc2
- /lib/libnss_dns.so.X
- implementa a fonte 'dns' para glibc2
- /lib/libnss_files.so.X
- implementa a fonte 'files' para glibc2
- /lib/libnss_hesoid.so.X
- implementa a fonte 'hesoid' para glibc2
- /lib/libnss_nis.so.X
- implementa a fonte 'nis' para glibc2
- /lib/libnss_nisplus.so.2
- implementa a fonte 'nisplus' para glibc 2.1
NOTAS¶
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.
TRADUZIDO POR LDP-BR em 21/08/2000.¶
André L. Fassone Canova <lonelywolf@techno.com.br>
(tradução) Roberto Selbach Teixeira <robteix@zaz.com.br>
(revisão)