Como configurar o servidor Web / FTP para que ele baixe arquivos .sh em vez de mostrar seu conteúdo

2

Eu tenho um servidor FTP (vsftpd), onde existem muitos arquivos de vários tipos. Normalmente, quando você clica no arquivo .tar.gz no seu navegador, ele começa a baixá-lo.

O problema é quando o usuário clica no arquivo .sh , o arquivo não é baixado, mas seu conteúdo é exibido no navegador.

O que devo configurar o servidor FTP ou Web para forçá-lo a baixar arquivos .sh?

Editar: Primeiro, o servidor da Web é o Apache. No entanto, como entendi, o servidor da Web não interfere na solicitação, pois o protocolo " ftp: // " é usado em vez de " link ". Talvez, essa seja a razão pela qual as regras do Apache são ignoradas (porque o Apache não recebe nenhuma solicitação). O servidor FTP lida diretamente com todas as solicitações do cliente.

Considerando tudo isso. Existe uma maneira de configurar o servidor FTP para manipular corretamente os arquivos .sh?

    
por Eye 02.02.2012 / 03:59

3 respostas

3

No Apache, você pode fazer o seguinte para forçar até mesmo os mais relutantes navegadores da Web (eu estou olhando para você, IE) para baixar um arquivo:

<FilesMatch *.sh>
  ForceType application/octet-stream
  Header set Content-Disposition attachment
</FilesMatch>

Isso deve ser adicionado dentro de um VirtualHost ou de um diretório dentro de um VirtualHost.

    
por 02.02.2012 / 04:39
0

Qual software de servidor da web você está usando?

Isso geralmente é feito com os tipos MIME. Dependendo do servidor da Web, talvez seja necessário editar o arquivo de tipos MIME relevante (digamos, /etc/mime.types ou, para nginx, /etc/nginx/mime.types, embora seja especificado no arquivo / etc / nginx / nginx.conf) e adicione algo para a extensão .sh.

No Apache, há um "mime_magic_module". Se estiver ativado, ele detectará que um arquivo é um script de shell e configurará o tipo MIME como "application / x-shellscript" ou "application / x-sh". Se o seu servidor da web não tiver esse tipo de detecção automática, você poderá adicionar algo como:

application/x-sh               sh

para o arquivo de tipos MIME equivalente.

Se você fizer curl -Iv http://www.example.com/foo.sh , será o Content-Type: cabeçalho indicando o que o servidor da Web acha que o arquivo que está sendo veiculado é.

    
por 02.02.2012 / 04:34
-1

Se o servidor da Web puder adicionar um cabeçalho HTTP, você poderá retirá-lo. Algo como:

Content-Disposition = attachemnt; filename="abcd.sh"

Se o navegador fala FTP diretamente para o servidor FTP, não há muito o que ajustar.

    
por 02.02.2012 / 04:08

Tags