在 CoreOS 上哪里安装 NSS 模块?

在 CoreOS 上哪里安装 NSS 模块?

我有一个自己编写的自定义 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 环境变量中。但似乎没有帮助。

答案1

使用开发人员 SDK 构建包含更改的新图像。

CoreOS 称其自己是不可变的;这是设计使然。

答案2

我通过放置库来让它工作/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 模块。

相关内容