AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 793496
Accepted
Continuous Improvement
Continuous Improvement
Asked: 2025-04-09 12:26:42 +0800 CST2025-04-09 12:26:42 +0800 CST 2025-04-09 12:26:42 +0800 CST

Quaisquer casos de uso reais em que NÃO priorizamos arquivos locais em vez de DNS em `nsswitch.conf`

  • 772

Recentemente, descobri que existe um arquivo de configuração do Service Switch nsswitch.confem alguns sistemas operacionais do tipo Unix. Podemos alterar a ordem de resolução de nomes de domínio usando nsswitch.conf.

A ordem mais comum deve ser priorizar os arquivos locais em vez do DNS. No nsswitch.conf, deve ser definido como

hosts:          files DNS

Gostaria de saber se há outros casos de uso que NÃO estão configurados como os acima? Por exemplo,

hosts:          DNS

Quais são os motivos pelos quais eles usam essa configuração?

Opcional: você conhece algum outro uso divertido, mas não muito conhecido nsswitch.conf?

linux
  • 2 2 respostas
  • 43 Views

2 respostas

  • Voted
  1. Best Answer
    telcoM
    2025-04-09T13:30:07+08:002025-04-09T13:30:07+08:00

    Para simplificar a inicialização do sistema, ele deve ser capaz de resolver seu próprio nome de hostlocalhost , mesmo que a conectividade de rede não esteja disponível. Se esses nomes não forem resolvíveis, você poderá enfrentar vários atrasos na inicialização – o caso clássico é esperar até um minuto na inicialização se não conseguir resolver o Nome de Domínio Totalmente Qualificado do sistema.sendmail

    A maneira clássica de fazer isso é colocar fileso primeiro na ordem de prioridade e ter uma entrada /etc/hostsque corresponda ao nome do host do sistema. Mas isso só funciona totalmente se o sistema tiver um endereço IP estático. Uma solução alternativa para sistemas móveis ou que usam DHCP é ter uma /etc/hostsentrada que associe o nome do host do sistema a um endereço de loopback, como 127.0.0.2(sim, .2).

    Em sistemas modernos, existem outras maneiras de fazer isso. Algumas distribuições Linux incluem uma glibcbiblioteca de extensão de resolução ( libnss_myhostname.so.2) que permite inserir myhostnamea hosts:linha de /etc/nsswitch.conf. Essa biblioteca resolverá automaticamente localhost, localhost.localdomaine todas as formas (abreviadas ou FQDN) do nome do host local configurado com o(s) endereço(s) IP apropriado(s) - usando um endereço de host local se ainda não houver outras interfaces de rede ativas.

    Ah, e observe: os sistemas Unix normalmente diferenciam maiúsculas de minúsculas e, em nsswitch.conf, você deve escrever dnsem minúsculas. Isso ocorre porque, pelo menos no Linux, as palavras-chave nas linhas mapeiam diretamente para nomes de arquivos de biblioteca:

    • filesdiz ao sistema para usarlibnss_files.so
    • dnsdiz ao sistema para usarlibnss_dns.so
    • e assim por diante...

    É assim que o GNU glibcimplementa o Name Service Switch; outros sistemas do tipo Unix podem fazer isso de forma diferente.


    hosts:          DNS
    

    Quais são os motivos pelos quais eles usam essa configuração?

    Talvez o sistema tenha sido projetado como um dispositivo que obtém sua identidade completa e configuração de rede do servidor DHCP, e todos os serviços que ele executa tenham sido cuidadosamente verificados para não precisar de resolução de nome de host até que a rede esteja instalada e funcionando, e o dispositivo esteja documentado para precisar de resolvedores DNS totalmente funcionais e disponíveis o tempo todo, tornando qualquer interrupção em sua disponibilidade um problema de outra pessoa?


    Opcional: você conhece algum outro uso divertido, mas não muito conhecido nsswitch.conf?

    Que tal modificar as linhas passwd:, e para chamar bibliotecas não padrão, para que o sistema reconheça contas de usuário que não estão presentes em ? E shadow:, ao mesmo tempo, talvez omitir o clássico ou dessas linhas, para que o usual e não sejam usados ​​de fato?group:gshadow:/etc/passwdfilescompat/etc/passwd/etc/group

    (Isso seria basicamente como um sistema é integrado a um sistema centralizado de gerenciamento de contas de usuário, como o Active Directory, algum outro sistema de gerenciamento de identidade ou um diretório de usuários LDAP.)

    Você deve iniciar o gerenciador de pacotes da sua distribuição Linux e procurar por pacotes com nomes como libnss-*ou nss-*: a maioria deles provavelmente são bibliotecas opcionais do plugin Name Service Switch com vários efeitos. Leia as descrições dos pacotes para descobrir o que cada um deles pode fazer.

    (Observação: qualquer pacote com esse nome libnss3-*provavelmente não tem relação: provavelmente se trata do Network Security Services, uma biblioteca SSL/TLS originária da Mozilla. Uma infeliz colisão de siglas.)

    • 1
  2. Philip Couling
    2025-04-09T16:52:36+08:002025-04-09T16:52:36+08:00

    Casos de uso para não resolver arquivos primeiro são muito raros. Normalmente, você deseja que o arquivo substitua o servidor DNS se os dois discordarem e deseja um tempo de resposta mais rápido para os arquivos disponíveis.

    No entanto, já vi algumas configurações não padronizadas que mudam isso.

    Vi um administrador de sistemas optar por inverter a ordem na VM do servidor DNS. O servidor DNS tem seu próprio cliente DNS definido como localhost, e colocar os arquivos por último garante que, quando a VM do servidor tentar resolver um nome de host por motivos próprios, ela nunca discorde do serviço DNS fornecido.

    Também vi arquivos removidos dentro de uma imagem do docket como uma solução alternativa para o comportamento esotérico do docker que tenta controlar o arquivo hosts do daemon do docker.

    É mais comum remover arquivos de outras coisas controladas pelo nsswitch.conf, como usuários, onde os usuários do sistema operacional são controlados por um host externo.

    • 1

relate perguntas

  • Existe uma maneira de fazer ls mostrar arquivos ocultos apenas para determinados diretórios?

  • Inicie/pare o serviço systemd usando o atalho de teclado [fechado]

  • Necessidade de algumas chamadas de sistema

  • astyle não altera a formatação do arquivo de origem

  • Passe o sistema de arquivos raiz por rótulo para o kernel do Linux

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve