Есть ли общее решение использовать одну библиотеку NSS два (или более) раза?
В моем случае у меня есть два сервера LDAP, один локальный на самой машине и один удаленный. Мне нужно, чтобы NSS работал с ними обоими (он использует удаленный, если локальный не имеет необходимых записей).
В настоящее время решено, что одна библиотека ( PADL / nss_ldap ) собирается дважды. В обоих случаях перед сборкой sedиспользуется для изменения всех nss_ldapвхождений в источниках на что-то другое. Для каждого случая используется другой текст (например, nss_ldap_1и nss_ldap_2). Результат сборки переименован соответственно. Оба двоичных файла хранятся в целевой системе и упоминаются в /etc/nsswitch.conf.
Также обе эти библиотеки используют разные конфигурационные файлы /etc/(иначе это не имело бы никакого смысла!). Однако это легко сделать, просто изменив аргумент в configureскрипте библиотеки, запущенной перед сборкой.
Но это не "чувствует себя хорошо". Есть ли другой подход?
Я мог бы представить, что сама библиотека NSS может поддерживать несколько конфигураций, чтобы она работала как два «единичных экземпляра». Но этого трудно достичь, если вы не являетесь автором библиотеки. Также это требует последующего вызова библиотеки для обеих конфигураций, в то время как можно предпочесть иметь какую-то другую библиотеку между ними.
Другой подход - написать простой сервер пересылки, который просто вызывает другую библиотеку с другой конфигурацией. Но это опять-таки требует, чтобы другая библиотека была каким-то образом реконфигурируемой (если она просто использует некоторые фиксированные конфигурационные файлы в /etcсервере пересылки, будет работать так же, как и в первой версии). И также это работает только один раз - если использовать библиотеку три раза или более, та же проблема возвращается теперь с самим форвардером.
sss?