首页 文章

chgrp和链接库

提问于
浏览
0

根据/ bin / chgrp上的ldd linux命令,执行它的唯一必需库是libc.so.当使用gdb调试chgrp时,我注意到其他库实际上已加载,例如:

/lib/x86_64-linux-gnu/libnss_compat.so.2
/lib/x86_64-linux-gnu/libnsl.so.1
/lib/x86_64-linux-gnu/libnss_nis.so.2
/lib/x86_64-linux-gnu/libnss_files.so.2

为什么这些库在ldd输出中不进行比较?

另外:他们没有在libc.so的DYNAMIC部分进行比较,它们是如何定位和加载的? (我用readelf检查了libc.so的DYNAMIC部分,这些库不存在)

1 回答

  • 3

    运行程序时,各种 libnss 库由 libc 动态加载,通过dlopen . 加载哪些库由 /etc/nsswitch.conf 的内容决定 . 有关详细信息,请参阅Name Service Switch documentation .

相关问题