En el mundo de Ubuntu, parece que siempre ejecutas un servidor FTP o nunca lo haces. Tal vez soy el primer analista de red que necesita flashear una imagen de Cisco, Checkpoint o Nokia usando Ubuntu ... Necesito un servidor FTP durante unos 5 minutos, nada más que eso.
Estoy buscando un servidor FTP básico, iniciado por el usuario. Entiendo que probablemente tendría que correr con sudo. Eso está bien, pero quiero iniciarlo / detenerlo como un programa normal.
En la plataforma de Windows, estas herramientas son una moneda de diez centavos por docena: he usado 3CDaemon durante años y recientemente encontré CoreFTP. Ambos son excelentes Usted configura un usuario, lo apunta a un directorio, luego presiona el botón "Inicio". Un par de minutos más tarde, generalmente ya terminaste y presionaste el botón "Parar". Trabajo hecho.
Tales herramientas no parecen existir en Ubuntu. Encontré un proyecto de Google Code que crea una instancia TFTP razonablemente bien (suponiendo que todavía se ejecute, no lo he usado en aproximadamente un año y Python se ha movido), pero ¿qué tal FTP? ¿Hay algo por ahí?
Respuestas:
Puede obtener un servidor FTP tan fácil como uno, dos, tres usando pyftpdlib :
pip install --user pyftpdlib
python -m pyftpdlib
, agregue-w
si desea acceso de escritura también.Ahora tiene un servidor ftp en el que puede iniciar sesión para compartir anónimamente su directorio personal. Esto se entiende más como una prueba del módulo, pero hace lo que dice en la lata.
Este comando:
servirá, sin privilegios de root, en el puerto 2121 y otorgará acceso de escritura a usuarios anónimos. También usará el directorio
FTP
en el directorio de trabajo actual en lugar de su hogar. Escribapython ftpserver.py --help
para obtener información sobre todas las opciones.anonymous@localhost:2121/
Tenga en cuenta que este software se lanza bajo los términos de la Licencia MIT , lo que significa que puede hacer básicamente lo que quiera con él. Lea el texto de la licencia, son solo unas pocas líneas y conozca sus derechos.
Ahora, este script no admite nombre de usuario y contraseña como parte de su funcionalidad independiente (por razones de seguridad, imagino).
Entonces agregué esa característica:
Ahora tiene, además de todas las opciones que mencioné, los parámetros de la línea de comando
--username=USERNAME
y--password=PASSWORD
:Nuevamente, utilícelo
--help
para verlos a todos.Esto debería ser tan fácil como sea posible.
También he escrito una pequeña gui para ello:
Descárguelo aquí (actualizado en la rev. 6)
Lo siento, tiene 3999 líneas de largo, pero hará todo lo que hace el original. Y quería mantenerlo todo en un archivo. Cuando se inicia sin ningún parámetro (es decir, hacerlo ejecutable y hacer doble clic en él, o crear un iniciador para él ), se inicia una pequeña interfaz gráfica de usuario para que pueda configurar su servidor. Todavía puede importarlo como un módulo de Python o usar la línea de comando anterior fu.
Problemas conocidos:
No me he molestado en otra cosa que no sea el puerto 2121. Esto debería ser simple, hacer que el puerto sea configurable requiere un manejo complejo de errores con el que no quiero que el usuario se moleste. 2121 siempre debería funcionar bien.
No le advertirá, como lo hace la línea de comando, sobre el uso de una configuración insegura. No estoy estableciendo una contraseña o algo así.
EDITAR: ya que la API de
pyftpdlib
yftpserver.py
cambió (y los enlaces de ubbin pastebin se han ido); La mayoría de las publicaciones anteriores ya no funcionan. Para la versión (2014) depyftpdlib
, use este script (ftpserver-cli.py
) para lograr lo mismo que arriba:llamar con:
fuente
Puedes usar pure-ftpd
Puede usar scp si tiene un servidor ssh.
fuente
postinst
guión en el paquete.)Para aquellos que copian archivos ay desde enrutadores, puede probar esta herramienta: tftpgui
Funcionó para mí y es muy fácil de configurar. También es un script de Python pero hace tftp en lugar de ftp. Todo lo que tienes que hacer es instalar python-tk y descargar el script
Lo único que debe tener en cuenta es que Ubunutu está predeterminado en Phython2, por lo que la mejor manera de iniciar el script es:
Luego puede configurarlo en la GUI. cuando haya terminado, presione salir y eso es todo.
Bo
fuente