我知道大多数Linux网络服务都链接到libwarp.a (),这可以通过ldd命令进行检查。但似乎找不到如何列出链接到libwarp.a的所有网络服务。
等了一会儿,我自己创造了一个垃圾场。在/usr/sbin中运行下面的脚本
find ./ -type f -exec echo {} \; -exec ldd {} \; | egrep "\\./|libwrap" | less
在CentOS7中发现5。有正确的方法吗?
发布于 2018-05-04 18:47:11
有很多方法可以做到这一点,但是首先您需要搜索链接到libwrap.so的二进制文件。
我的一条衬里(为便于阅读而分成几行):
for file in /usr/sbin/*
do
ldd $file 2>/dev/null | grep -q libwrap.so && echo $file
done我已经在/usr/sbin中选择了我想要查看的所有文件,但如果需要,您可以在其他地方查找。
我抑制来自ldd的错误输出,因为它很吵。
使用更高级的-q会导致grep没有输出任何东西(因为看到一堆libwrap.so是没有意义的)。通过使用&&,我只在echo找到匹配的情况下运行grep。
所以我得到:
$ for file in /usr/sbin/*; do ldd $file 2>/dev/null | grep -q libwrap.so && echo $file; done
/usr/sbin/auditd
/usr/sbin/exportfs
/usr/sbin/rpcbind
/usr/sbin/rpcinfo
/usr/sbin/rpc.mountd
/usr/sbin/rpc.statd
/usr/sbin/sshdhttps://serverfault.com/questions/910708
复制相似问题