Compartir ficheros bajo GNU/Linux
Normalmente para compartir archivos en sistemas GNU/Linux necesitamos de la instalación de un servidor SAMBA “Implementación del protocolo SMB/CIFS de MS Windows” (si nos encontramos en un entorno de trabajo bajo redes heterogéneas, es decir con equipos usando GNU/Linux y MS Windows) ó el uso de un servidor NFS “Network File System” (originalmente desarrollado por Sun Microsystems).
La implementación de alguno de estos servidores conlleva tiempo y configuraciones que pueden ser algo complejas dependiendo del entorno de trabajo. Si nuestro objetivo es compartir temporalmente ficheros en nuestra red de una forma mucho mas rápida y sencilla, las alternativas anteriormente mencionadas no son la solución a nuestro problema. Es aquí donde entra en juego “Python” y su módulo “SimpleHTTPServer”.
¿Qué es Python?
Python es un lenguaje de programación extremadamente potente y sus módulos nos pueden hacer la vida muy fácil en determinadas situaciones. En este caso podemos levantar un servidor web sin ningún tipo de instalación ni configuración, únicamente ejecutando un solo comando desde BASH dentro del directorio que queramos compartir.
Os dejo el enlace a la descripción del modulo en la web de Python (versión 2.7):
https://docs.python.org/2.7/library/simplehttpserver.html#module-SimpleHTTPServer
NOTA: La documentación varia según la versión de Python que escogas. Podéis ver vuestra versión de Python ejecutando desde una SHELL:
$ python –V
En mi caso es la 2.7.3 en mi máquina Ubuntu, también podéis ejecutar
$ python -m “nombredelmódulo”, para probar cualquier módulo que tengáis desarrollado. En nuestro caso usaremos uno de los módulos por defecto “SimpleHTTPServer”. Mencionar que para la versión 3 de Python el nombre del módulo cambia a “http.server”, por lo demás todo es exactamente igual.
Python suele venir instalado en la mayoría de sistemas GNU/Linux, pero si no es el caso, para instalarlo solo tendréis que hacer uso del gestor de paquetes de vuestra distribución (apt-get, dnf, yum, zypper, yast, brew, etc…)
Compartir archivos con SimpleHTTPServer de Python
Como ya hemos citado más arriba para compartir ficheros a través de este módulo solo tenemos que ir al directorio donde tenemos los archivos y ejecutar el comando en cuestión. Para acceder al recurso compartido el usuario solo tendrá que poner la IP de nuestra máquina seguida del puerto por defecto 8000 de “SimpleHTTPServer” en la barra de direcciones del navegador.
$ cd /home/vagrant/compartido
$ python -m SimpleHTTPServer
Para verificar que el servidor ha iniciado bien ejecutamos:
$ netstat –putan | grep 8000
Para acceder desde nuestra propia máquina:
Para el acceso de un usuario desde otra maquina (en mi caso la dirección IP del Pc corriendo Ubuntu es 192.168.1.224):
Para dejar de compartir el recurso solo tenemos que ejecutar en la SHELL las teclas CTRL+C.
Saludos cordiales.