Como você verifica remotamente se a listagem de diretórios HTTP está ativada no Linux?

1

Eu quero poder testar automaticamente todos os meus servidores para garantir que a navegação no diretório esteja ativada. Como faço isso em um script de shell?

    
por David 20.06.2011 / 10:45

1 resposta

3

Duas sugestões:

  • Crie um diretório, obtenha seu conteúdo via HTTP de localhost (usando curl , wget -O /dev/stdout , lynx -dump , w3m -dump , elinks -dump ) e procure a lista de arquivos. Exemplo para o Apache2, que normalmente mostra 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
    

    Se você estiver usando Lighttpd, nginx ou qualquer outra coisa, ajuste o padrão grep .

  • Alternativa: Aprenda alguns grep ou perl e analise os arquivos de configuração. O processo exato depende do daemon HTTP que você está usando - seus formatos de configuração são muito diferentes.

por 20.06.2011 / 10:54