Comment vérifier à distance si la liste de répertoires HTTP est activée sur Linux?


1

Je veux pouvoir tester automatiquement tous mes serveurs pour m'assurer que la navigation dans les répertoires est activée. Comment puis-je faire cela dans un script shell?

Réponses:


3

Deux suggestions:

  • Créez un répertoire, récupérez son contenu sur HTTP à partir de localhost (en utilisant curl, wget -O /dev/stdout, lynx -dump, w3m -dump, elinks -dump ) et cherchez la liste de fichiers. Exemple pour Apache2, qui montre normalement 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
    

    Si vous utilisez Lighttpd, nginx ou autre chose, ajustez la grep modèle.

  • Alternative: apprendre grep ou perl et analyser l’enfer de vos fichiers de configuration. Le processus exact dépend du démon HTTP que vous utilisez - leurs formats de configuration sont très différent.


1
Merci beaucoup! Également utiliser curl pour obtenir le code de réponse http fonctionne pour moi. 403 signifie que la liste de répertoires est désactivée et 200 que cela est activé
— David
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.