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