如何列出链接到 libwrap.a (tcp 包装器) 的所有服务

如何列出链接到 libwrap.a (tcp 包装器) 的所有服务

我知道大多数 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是没有意义的)。并且通过使用,&&我只有echogrep找到匹配项时才运行。

所以我得到:

$ 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

相关内容