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?

David
la source

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.

grawity
la source
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