У меня есть собственный модуль NSS, который я написал, и я обычно устанавливаю его, копируя библиотеку вот так ...
cp libnss_mymodule.so.0 /lib64/
... затем я добавляю свой модуль в /etc/nsswitch.conf ...
$ grep mymodule /etc/nsswitch.conf
passwd: mymodule files usrfiles sss systemd
group: mymodule files usrfiles sss systemd
У меня это работает в CentOS 7, но не работает в CoreOS, потому что / lib64 находится в файловой системе только для чтения. Где я могу разместить библиотеку общих объектов в CoreOS, которая будет видна nsdispath ()?
РЕДАКТИРОВАТЬ: я попытался добавить файл в / opt / me / lib64 и поместив это в переменную среды LD_LIBRARY_PATH. Похоже, это не помогло.
Создайте новый образ, содержащий ваши изменения, с помощью SDK разработчика.
CoreOS называет себя неизменным; это задумано.
Я заставил его работать, поставив библиотеки / opt / mything / lib64 а затем измените следующие конфигурации системы:
Добавлена следующая строка в / etc / окружающая среда:
LD_LIBRARY_PATH=/opt/mything/lib64
Добавлена следующая строка в /etc/systemd/system.conf:
DefaultEnvironment=LD_LIBRARY_PATH=/opt/mything/lib64
Затем выполнила следующую команду:
sudo systemctl daemon-reload
Это позволило NSS найти созданные мной пользовательские модули NSS.