No mundo do Ubuntu, parece que você sempre executa um servidor FTP ou nunca o executa . Talvez eu seja o primeiro analista de rede que precisa exibir uma imagem da Cisco, Checkpoint ou Nokia usando o Ubuntu ... Eu preciso de um servidor FTP por talvez 5 minutos, não mais do que isso.
Estou procurando um servidor FTP básico, iniciado pelo usuário. Eu entendo que provavelmente teria que rodar com o sudo. Tudo bem - mas eu quero iniciar / parar como um programa normal.
Na plataforma Windows, essas ferramentas custam uma dúzia - eu uso o 3CDaemon há anos e encontrei recentemente o CoreFTP. Ambos são excelentes. Você configura um usuário, aponte-o para um diretório e pressione o botão "Iniciar". Alguns minutos depois, você geralmente termina e clica no botão "Stop". Tarefa concluída.
Essas ferramentas parecem não existir no Ubuntu. Eu encontrei um projeto do Google Code que cria uma instância TFTP razoavelmente bem (supondo que ela ainda funcione - eu não a uso há cerca de um ano e o python segue em frente), mas e o FTP? Alguma coisa lá fora?
Respostas:
Você pode obter um servidor FTP tão fácil quanto um dois três usando pyftpdlib :
pip install --user pyftpdlib
python -m pyftpdlib
, adicione-w
se você quiser acesso de gravação também.Agora você tem um servidor ftp no qual pode fazer login para compartilhar anonimamente seu diretório pessoal. Isso significa mais como um teste do módulo, mas faz o que diz na lata.
Este comando:
servirá, sem privilégios de root, na porta 2121 e concederá acesso de gravação a usuários anônimos. Ele também usará o diretório
FTP
no diretório de trabalho atual em vez da sua casa. Digitepython ftpserver.py --help
para obter informações sobre todas as opções.anonymous@localhost:2121/
Observe que este software é lançado sob os termos da Licença MIT , o que significa que você pode fazer basicamente o que quiser com ele. Leia o texto da licença, são apenas algumas linhas e conheça seus direitos.
Agora, esse script não suporta nome de usuário e senha como parte de sua funcionalidade autônoma (por motivos de segurança, imagino).
Então eu adicionei esse recurso:
Agora você tem, além de todas as opções que mencionei, os parâmetros da linha de comando
--username=USERNAME
e--password=PASSWORD
:Mais uma vez, use
--help
para ver todos eles.Isso deve ser o mais fácil possível.
Eu também escrevi um pouco de gui para isso:
Faça o download aqui (atualizado na rev. 6)
Sinto muito, são 3999 linhas, mas fará tudo o que o original faz. E eu queria manter tudo em um arquivo. Quando é iniciado sem nenhum parâmetro (por exemplo, torne-o executável e clique duas vezes nele, ou crie um iniciador para ele ), ele inicia um pequeno guia para você configurar seu servidor. Você ainda pode importá-lo como um módulo python ou usar a linha de comando acima fu.
Problemas conhecidos:
Eu não me incomodei com nada além da porta 2121. Isso deve ser simples, tornar a porta configurável requer um tratamento complexo de erros, com o qual não quero que o usuário se preocupe. 2121 deve sempre funcionar bem.
Ele não avisará, como a linha de comando, sobre o uso de uma configuração insegura. Ou seja, não estou definindo uma senha ou algo assim.
EDIT: desde que a API
pyftpdlib
eftpserver.py
mudou (e os links do ubuntu pastebin se foram); a maior parte do post acima não funciona mais. Para a versão (2014) depyftpdlib
, use este script (ftpserver-cli.py
) para obter o mesmo que acima:ligue com:
fonte
Você pode usar o ftpd puro
Você pode usar scp se você tem um servidor SSH.
fonte
postinst
script no pacote.)Para aqueles que copiam arquivos de e para roteadores, você pode experimentar esta ferramenta: tftpgui
Funcionou para mim e é muito fácil de configurar. Também é um script Python, mas faz o tftp em vez do ftp. Tudo que você precisa fazer é instalar o python-tk e baixar o script
A única coisa a ter em atenção é que o Ubunutu assume como padrão o Phython2, portanto a melhor maneira de iniciar o script é:
Você pode configurá-lo na GUI. quando terminar, pressione exit e é isso.
Bo
fonte