Para executar, o bit de execução deve ser definido. Mesmo o proprietário de um arquivo não pode pedir ao sistema para executá-lo se não estiver marcado como executável.
A única ressalva aqui é que, no caso da maioria dos scripts de shell, você pode executá-los chamando o shell e alimentando os dados do script como um argumento.
/bin/sh /path/to/files.sh
Isso executaria o shell sh
e enviaria os dados de texto para o seu script ser executado. Isso requer apenas permissão de leitura no arquivo porque o shell é o que está sendo executado e só precisa ler o script para não executá-lo.
Você pode alterar as permissões dos arquivos que serão gravados, definindo o umask nas preferências do ftp, ou usar um shell posteriormente para chmod
deles. Alguns daemons de ftp também suportam a alteração das permissões em arquivos existentes.