![如何远程检查 Linux 上是否启用了 HTTP 目录列表?](https://linux22.com/image/1280152/%E5%A6%82%E4%BD%95%E8%BF%9C%E7%A8%8B%E6%A3%80%E6%9F%A5%20Linux%20%E4%B8%8A%E6%98%AF%E5%90%A6%E5%90%AF%E7%94%A8%E4%BA%86%20HTTP%20%E7%9B%AE%E5%BD%95%E5%88%97%E8%A1%A8%EF%BC%9F.png)
我希望能够自动测试我的所有服务器以确保目录浏览已启用。如何在 shell 脚本中执行此操作?
答案1
两个建议:
创建一个目录,通过 HTTP 获取其内容本地主机(使用
curl
、wget -O /dev/stdout
、lynx -dump
、w3m -dump
、elinks -dump
)并查找文件列表。Apache2 的示例通常显示Index of /directory
:cd /srv/http name="test-$RANDOM$RANDOM$RANDOM" mkdir "$name" if curl "http://localhost/$name/" | fgrep -qs "Index of /$name"; then echo "enabled" rmdir "$name" else echo "disabled" rmdir "$name" exit 1 fi
如果你正在使用 Lighttpd、nginx 或其他程序,请调整grep图案。
替代方案:学习一些
grep
或perl
并解析配置文件。具体过程取决于您使用的 HTTP 守护程序 - 它们的配置格式是非常不同的。