Você pode querer rever a seção de man vsftpd.conf
, especificamente a seção do arquivo de negação das opções de string que declara.
deny_file
Esta opção pode ser usada para definir um padrão para nomes de arquivos (e nomes de diretórios, etc.) que não devem ser acessíveis de forma alguma. Os itens afetados não estão ocultos, mas qualquer tentativa de fazer qualquer coisa com eles (download, alteração no diretório, afetar algo dentro do diretório etc.) será negada. Esta opção é muito simples e não deve ser usada para controle de acesso sério - as permissões do sistema de arquivos devem ser usadas de preferência. No entanto, essa opção pode ser útil em determinadas configurações de usuário virtual. Em particular, ciente de que, se um nome de arquivo é acessível por uma variedade de nomes (talvez devido a links simbólicos ou hard links), então deve-se ter cuidado para negar acesso a todos os nomes. O acesso será negado aos itens se o nome deles contiver a string dada por hide_file, ou se eles corresponderem à expressão regular especificada por hide_file. Observe que o código de correspondência de expressão regular do vsftpd é uma implementação simples que é um subconjunto da funcionalidade de expressão regular completa. Por isso, você precisará testar cuidadosamente e exaustivamente qualquer aplicativo dessa opção. E recomenda-se que você use as permissões do sistema de arquivos para quaisquer políticas de segurança importantes, devido à sua maior confiabilidade. Sintaxe de regex suportada é qualquer número de *,? e unnested {,} operadores. A correspondência de regex é suportada apenas no último componente de um caminho, por ex. a / b /? é suportado, mas um /? / c não é.
Example: deny_file={*.exe,*.sh,.private}
Eu não testei que isso irá negar explicitamente o upload de arquivos .exe, mas a suposição é que as pessoas estão fazendo o upload deles para que outras pessoas possam baixá-los. Quando isso deixa de funcionar, talvez a atividade de carregá-los também acabe. Como sugerido em este comentário você também pode escrever um script para recuperar o espaço no diretório de upload por rm /youruploaddir/*.exe
onde / youruploaddir / é o diretório que seus usuários estão enviando para e use o cron para agendá-lo para rodar em uma hora ou frequência específica.
Desde que uma extensão de arquivo não garante conteúdo como mencionado por @CharlesGreen em este comentário você pode considerar uma variação em este script que eu projetei para encontrar virtualmente todos os arquivos de vídeo em meu sistema. Você pode modificá-lo facilmente para incluir contêineres .mxf (Material Exchange Format). Ou, como alternativa, simplesmente identifique os arquivos .exe reais utilizando grep
para corresponder a "executável" na saída de file
Determinação de arquivos executáveis Exemplo:
file *.* | grep "executable"| cut -d':' -f1
Imprimirá os nomes de arquivo dos arquivos no diretório atual que são realmente executáveis (como arquivos .exe do Windows)
Nota: Os arquivos só são executáveis no seu sistema se você tiver as permissões configuradas para permitir isso. Consulte este para mais detalhes.