今天有人问我,如果有四个程序: xinetd, httpd,sshd,syslogd 如何可以查到这4个程序中,支持tcpwrap的程序呢?
据我所知,如果支持tcpwrap就一定有libwrap的库文件参与。那么程序在运行的时候肯定会加载相应的库模块。
而查询加载的模块命令我们用ldd。可是查询的时候如何快速查询是否有libwrap的模块呢?就需要我们写一个简单的shell脚本了。。。呵呵
分解一下: 首先第一步。测试一下 xinetd程序在那里。可以用which命令来定位。
[root@RHEL5 ~]# which xinetd
/usr/sbin/xinetd
得到结果是/usr/sbin/xinetd这个程序,然后利用ldd 查看该程序加载了哪些模块。
[root@RHEL5 ~]# ldd /usr/sbin/xinetd
linux-gate.so.1 => (0x00e7b000)
libselinux.so.1 => /lib/libselinux.so.1 (0x0036f000)
libwrap.so.0 => /usr/lib/libwrap.so.0 (0×00582000) libnsl.so.1 => /lib/libnsl.so.1 (0×00294000)
libm.so.6 => /lib/i686/nosegneg/libm.so.6 (0×00256000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0×00110000)
libc.so.6 => /lib/i686/nosegneg/libc.so.6 (0×00386000)
libdl.so.2 => /lib/libdl.so.2 (0x00a7c000)
libsepol.so.1 => /lib/libsepol.so.1 (0x00d72000)
/lib/ld-linux.so.2 (0x006db000)
我们需要的只是知道黑体显示的那一栏信息。这样我们知道了,xinetd程序是支持tcpwrap的程序。
接着,我们可以做得更好。利用shell脚本的特性。
[root@RHEL5 ~]# ldd $(which xinetd) | grep libwrap
libwrap.so.0 => /usr/lib/libwrap.so.0 (0x00c81000)
当然我还需要个循环来逐个显示不同服务对tcpwrap的支持。因此写出个简单的脚本。
#/bin/bash
# 测试程序对tcpwrap的支持。
# yoyojacky2009@gmail.com
for i in sshd syslogd httpd xinetd
do echo $i ; ldd $(which $i) | grep libwrap ;
done
写完后,记得给这个文件赋权:
[root@RHEL5 ~]# chmod +x ceshi.sh
然后执行以下,测试结果如下:
[root@RHEL5 ~]# ./ceshi.sh
sshd
libwrap.so.0 => /usr/lib/libwrap.so.0 (0x00c6a000)
syslogd
httpd
xinetd
libwrap.so.0 => /usr/lib/libwrap.so.0 (0x00c7c000)
结果显示,只有xinetd和sshd这两个程序支持tcpwrap功能。大家可以举一反三,通过这种方法查询更多的模块。找到程序中共同的模块,更好地理解linux的工作原理。
分类目录
-
最近文章
近期评论
- 王 淑娟 在 802.11ad——您前所未见的最快WiFi解决方案 上的评论
- 李 伟斌 在 【转载】记一次 superblock 损坏导致服务器无法启动的故障修复 上的评论
- 李 伟斌 在 【转帖】树莓派入门之自动登陆及自动运行程序 上的评论
- 李 伟斌 在 【转载】系统状态查询IOSTATE的一些细致分析。 上的评论
- 心的海洋 在 NAT地址转换原理全攻略[转载] 上的评论
文章归档
- 2025 年三月
- 2025 年二月
- 2024 年十月
- 2024 年七月
- 2024 年六月
- 2024 年四月
- 2024 年三月
- 2024 年一月
- 2023 年十二月
- 2023 年九月
- 2023 年八月
- 2023 年五月
- 2023 年二月
- 2022 年十一月
- 2022 年九月
- 2022 年一月
- 2021 年十一月
- 2021 年七月
- 2021 年三月
- 2021 年二月
- 2021 年一月
- 2020 年十二月
- 2020 年十一月
- 2020 年十月
- 2020 年九月
- 2020 年八月
- 2020 年七月
- 2020 年六月
- 2020 年五月
- 2020 年四月
- 2020 年三月
- 2020 年二月
- 2020 年一月
- 2019 年十二月
- 2019 年十一月
- 2019 年九月
- 2018 年七月
- 2018 年四月
- 2018 年三月
- 2017 年十二月
- 2017 年十月
- 2017 年九月
- 2017 年八月
- 2016 年十月
- 2016 年九月
- 2016 年八月
- 2016 年一月
- 2015 年十月
- 2015 年九月
- 2015 年八月
- 2015 年一月
- 2014 年九月
- 2014 年八月
- 2014 年六月
- 2014 年四月
- 2014 年二月
- 2014 年一月
- 2013 年十二月
- 2013 年十一月
- 2013 年九月
- 2013 年八月
- 2013 年七月
- 2013 年六月
- 2013 年五月
- 2013 年四月
- 2013 年三月
- 2013 年二月
- 2013 年一月
- 2012 年十二月
- 2012 年十一月
- 2012 年十月
- 2012 年九月
- 2012 年八月
- 2012 年七月
- 2012 年六月
- 2012 年五月
- 2012 年四月
- 2012 年三月
- 2012 年二月
- 2011 年十二月
- 2011 年十一月
- 2011 年十月
- 2011 年九月
- 2011 年六月
- 2011 年四月
- 2011 年三月
- 2011 年二月
- 2011 年一月
- 2010 年十二月
- 2010 年十一月
- 2010 年十月
- 2010 年九月
- 2010 年八月
- 2010 年六月
- 2010 年五月
- 2007 年九月
- 0 年
很棒!Shell脚本也写得很简洁!
呵呵,谢谢单总的评价,还需要再努力。呵呵