O NSS (Name Service Switch), ou Comutador de Serviço de Nomes, é um recurso fundamental em sistemas operacionais tipo Unix, como o Linux.
Ele atua como um intermediário entre os aplicativos e as diversas fontes de dados que o sistema utiliza para encontrar informações sobre usuários, grupos, hosts e outros serviços.
Imagine o NSS como uma central de atendimento telefônico. Quando um aplicativo precisa de uma informação, ele liga para o NSS.
O NSS, por sua vez, consulta um diretório telefônico (que, no caso, é o /etc/nsswitch.conf) para saber qual é o número correto para ligar.
E que pode ser um arquivo local, um servidor DNS, um servidor LDAP, ou qualquer outra fonte de dados configurada.
O arquivo /etc/nsswitch.conf é como um mapa de rotas, indicando como o sistema deve procurar informações sobre usuários, grupos, hosts e outros dados.
Ele define a ordem e as fontes a serem consultadas quando o sistema precisa resolver nomes, como arquivos locais, DNS, LDAP, NIS, etc.
Por exemplo, ao buscar informações sobre usuários, o sistema consultará primeiro o arquivo local /etc/passwd e, se não encontrar, buscará no servidor LDAP.
Para resolver nomes de hosts, o sistema consultará primeiro o arquivo local /etc/hosts e, em seguida, os servidores DNS.
O NSS (Name Service Switch) possui um mecanismo de cache para melhorar o desempenho, armazenando temporariamente informações já consultadas. Por exemplo:
hosts: files nis dns
A busca de hosts ocorre primeiro em /etc/hosts, busca NIS e o servidor de nome de domínio(/etc/resolv.conf e named).
Por essas características, o NSS é um componente fundamental do sistema Linux que garante que as informações necessárias estejam sempre disponíveis para os aplicativos, de forma eficiente e flexível.
Como ele funciona?
Quando um aplicativo faz uma consulta de nome (por exemplo, para resolver um nome de host ou procurar um usuário), o NSS consulta uma lista de módulos de serviço configurados.
O NSS tenta cada módulo na ordem até que um deles retorne um resultado bem-sucedido. Se nenhum módulo tiver sucesso, o NSS retornará um erro.
Cada módulo é responsável por consultar um serviço de diretório específico.
Fonte: links no texto