我有一个我编写的自定义 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位于只读文件系统上。我可以将共享对象库放在对 nsdispath() 可见的 CoreOS 上的什么位置?
编辑:我尝试将文件添加到/opt/me/lib64并将其放入 LD_LIBRARY_PATH 环境变量中。它似乎没有帮助。
使用开发人员 SDK 构建包含您所做更改的新映像。
CoreOS 称自己是不可变的;这是设计使然。
我通过放置库/opt/mything/lib64然后修改以下系统配置来让它工作:
将以下行添加到/etc/environment:
将以下行添加到/etc/systemd/system.conf:
然后运行以下命令:
这使得 NSS 可以找到我构建的自定义 NSS 模块。