找出目前系统上面正在运作中的服务,并且找到相对应的启动脚本 (在 /etc/init.d 内的档名之意)。
答:
要找出服务,就利用 netstat -tunlp 即可找到!以鸟哥从第一章安装的示范机为例,鸟哥目前启动的网络服务有底下这些:
[AppleScript] ı鿴 ƴ
[root@www ~]# netstat -tlunp
Active Internet connections (only servers)
Proto Local Address State PID/Program name
tcp 0.0.0.0:22 LISTEN 1176/sshd
tcp 127.0.0.1:25 LISTEN 1252/master
tcp 0.0.0.0:37753 LISTEN 1008/rpc.statd
tcp :::22 LISTEN 1176/sshd
tcp :::23 LISTEN 1851/xinetd
tcp ::1:25 LISTEN 1252/master
tcp :::38149 LISTEN 1008/rpc.statd
tcp 0.0.0.0:111 LISTEN 1873/rpcbind
tcp 0 :::111 LISTEN 1873/rpcbind
udp 0 0.0.0.0:111 1873/rpcbind
udp 0 0.0.0.0:776 1873/rpcbind
udp 0 :::111 1873/rpcbind
udp 0 :::776 1873/rpcbind
udp 0.0.0.0:760 1008/rpc.statd
udp 0.0.0.0:52525 1008/rpc.statd
udp :::52343 1008/rpc.statd
# 上述的输出鸟哥有稍微简化一些喔,所以有些字段不见了。
# 这个重点只是要展现出最后一个字段而已啦!
看起来总共有 sshd, master, rpc.statd, xinetd, rpcbind 等这几个服务,对照前一小节的数据内容来看, master (port 25), sshd 不能关掉,那么其他的就予以关闭啊!透过前两个小节的介绍,使用 which 与 rpm 搜寻吧!举例来说, rpc.statd 的启动脚本在:『rpm -qc $(rpm -qf $(which rpc.statd) ) | grep init』这样找,结果是在『/etc/rc.d/init.d/nfslock』这里! 因此最终的结果如下:
[AppleScript] ı鿴 ƴ
rpc.statd /etc/rc.d/init.d/nfs
/etc/rc.d/init.d/nfslock
/etc/rc.d/init.d/rpcgssd
/etc/rc.d/init.d/rpcidmapd
/etc/rc.d/init.d/rpcsvcgssd
xinetd /etc/rc.d/init.d/xinetd
rpcbind /etc/rc.d/init.d/rpcbind接下来就是将该服务关闭,并且设定为开机不启动吧!
[AppleScript] ı鿴 ƴ
[root@www ~]# vim bin/closedaemon.sh
for daemon in nfs nfslock rpcgssd rpcidmapd rpcsvcgssd xinetd rpcbind
do
chkconfig $daemon off
/etc/init.d/$daemon stop
done
[root@www ~]# sh bin/closedaemon.sh