Existe alguma solução genérica para usar uma única biblioteca NSS duas (ou mais) vezes?
No meu caso, tenho dois servidores LDAP, um local na própria máquina e um remoto. Preciso fazer o NSS funcionar com os dois (ele usa o remoto se o local não tiver entradas necessárias).
Atualmente, foi resolvido para que a biblioteca única ( PADL / nss_ldap ) seja compilada duas vezes. Nos dois casos, antes da construção sed
é usada para alterar todas as nss_ldap
ocorrências nas fontes para outra coisa. Para cada caso, um texto diferente é usado (como nss_ldap_1
e nss_ldap_2
). O resultado da construção é renomeado de acordo. Ambos os binários são armazenados no sistema de destino e mencionados em /etc/nsswitch.conf
.
As duas bibliotecas também usam arquivos de configuração diferentes /etc/
(caso contrário, não faria sentido!). No entanto, isso é feito facilmente, apenas alterando o argumento no configure
script da biblioteca executado antes da compilação.
Mas não "parece certo". Existe alguma outra abordagem?
O que eu poderia imaginar é que a própria biblioteca NSS poderia suportar várias configurações para que funcionasse como duas "instâncias únicas". Mas isso é difícil de conseguir se você não for o autor da biblioteca. Também requer a invocação subsequente da biblioteca para ambas as configurações, enquanto um pode preferir ter alguma outra biblioteca no meio.
Outra abordagem seria escrever um encaminhador simples que apenas chame alguma outra biblioteca com configuração diferente. Mas isso novamente exige que outra biblioteca seja reconfigurável de alguma forma (se ela usar apenas alguns arquivos de configuração fixos no /etc
encaminhador funcionará exatamente como a primeira versão). E também funciona apenas uma vez - para que uma biblioteca seja usada três vezes ou mais, o mesmo problema retorna agora com o próprio encaminhador.
sss
?