我知道大多数 Linux 网络服务都与 libwarp.a (tcp-wrappers) 相关联,可以通过以下方式检查LDD命令。但似乎找不到如何列出所有链接到的网络服务自由库。
经过一番等待,我自己创建了一个转储方法。在/usr/sbin
find ./ -type f -exec echo {} \; -exec ldd {} \; | egrep "\\./|libwrap" | less
在 CentOS7 中找到了 5。有没有正确的方法来做到这一点?
答案1
有很多方法可以做到这一点,但首先你需要搜索链接到的二进制文件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/sshd