Usando "Carpetas Compartidas" de Windows en Linux

Los usuarios familiarizados con un ambiente MS Windows están acostumbrados a copiar archivos entre sistemas bajo el concepto de “compartir carpetas”. La idea es que en un equipo Windows se marca una carpeta como “compartida” y automáticamente esta es accesible a través de la red por otros Sistemas Windows, simplemente escribiendo en la barra del explorador \\dirección_IP o \\nombre_de_red.

Recuerdo que la primera vez que quise armar una red Linux (simplemente dos PC’s corriendo Linux conectadas con un cable cruzado) acostumbrados al concepto de “carpetas compartidas” no entendíamos por qué no lograbamos “entrar” en el otro equipo, por más que ambas máquinas se veían bien meidante pings. Cuatro años después he comprendido que esto es un concepto propio de los sistemas Windows y que poco tiene que ver con el mundo UNIX/Linux.

¿Cómo hacemos entonces si queremos acceder (leer o incluso escribir) a una carpeta que nos han compartido desde un Windows?

Escribir \\equipo en el navegador no nos servirá. Lo que sucede es que cuando queremos acceder a otro equipo mediante el explorador de Windows, \\ indica al sistema que se deberá utilizar el protocolo Server Message Block (SMB), también conocido como Common Internet File System (CIFS), el cual permite acceder a recursos compartidos en redes Windows como directorios e impresoras.

Lo que nosotros necesitamos es una implementación del protocolo SMB para Linux… glup.

Calma, esto ya existe y es de lo que se trata el proyecto Samba: poder interoperar con recursos compartidos en una red Windows. La idea es que utilizado Samba podremos “montar” una carpeta compartida dentro de nuestro Sistema de Archivos, para luego leerla y escribirla como cualquier otra. La única diferencia consiste en que los datos se enviarán a través de la red se serán almacenados en el disco del equipo remoto.

¿Cómo montamos una carpeta compartida?

Primero necesitamos Samba. En particular nos interesa un paquete denominado smbfs en Ubuntu (y creo que es samba-client en Fedora), el cual agrega soporte para un nuevo tipo de Sistema de Archivos denominado justamente smbfs. Una vez que tenemos este paquete, simplemente debemos escribir en una terminal (como root o mediante sudo):

mount -t smbfs //<direccion_ip>/<carpeta_compartida> /<punto_de_montaje> -o user=<usuario>

Por ejemplo, supongamos que se comparte una carpeta bajo el nombre “datos” en un Windows cuya dirección IP es “10.10.10.1”, y en el cual está habilitada la cuenta de invitado (guest). En este caso podríamos simplemente escribir:

 mount -t smbfs //10.10.10.1/datos /mnt -o user=guest

Voilá. Los archivos que se encuentran en “datos” aparecerán en /mnt dentro de nuestro Sistema de Archivos y si la carpeta se compartió con permisos de escritura, podremos escribirla también. Una vez que terminemos simplemente desmontamos el directorio con el comando umount /mnt (como root también o mediante sudo).

Unas consideraciones que hay que tener en cuenta, sin embargo, consisten en que primero, como habrás notado, todo esto se realizó desde la consola mismo. Existen herramientas gráficas para hacer esto mismo en una forma mucho más amigable, no obstante, este procedimiento sirve para los casos en que nuestra terminal no dispone de tales aplicaciones, o bien no dispone de interfaz gráfica (como puede ser con un servidor).

En segundo lugar, montando así la carpeta, en caso de que se pueda escribir, solo podrá hacerlo root. Estoy seguro que esto puede cambiarse, pero no lo he probado lo suficientemente como para publicarlo (aún).

Finalmente, queda pendiente cómo poder utilizar el nombre de red Windows del equipo (en vez de su dirección IP) para hacer referencia a él. La suite de Samba incluye herramientas idóneas a tales fines, las cuales se encargan de consultar en una red NetBios (Windows) la dirección IP asociada a un cierto nombre dado por el usuario. En particular, el comando nmblookup se encarga de recibir un nombre y devolver la dirección IP asociada a ese equipo (si se encuentra).

Espero que les resulte útil. Happy Samba! 😉

Links relacionados:

This entry was posted in Linux, Networking, Sistemas Operativos, Software, Tutoriales, WinDOS. Bookmark the permalink.

5 Responses to Usando "Carpetas Compartidas" de Windows en Linux

  1. Otra forma significativamente más fácil de entrar a una “carpeta compartida” de windows es poniendo en el konqueror: “smb://maquina/recurso”…

  2. Varrojo says:

    Está muy bien el truco, no lo sabía 😀
    De cualquier forma no serviría para quienes usamos GNOME, verdad? 😛

  3. gus says:

    Para la gente que usa gnome es aun todavia mas facil, “Lugares” -> “Conectar con Servidor”

    Tambien lo podes hacer con nautilus de una manera similar a como se hace con konqueror.

    O podes ir a “Lugares” -> “Red” y navegar hasta el Share

    O lo que dijiste antes 😛

  4. BART-TRON says:

    Me paso exactamente lo mismo, quise entran a un carpeta de windows compartida en red, poniendo la IP en el navegador. Sorpresa no funciona.

    LA SOLUCION que das me fue Super facil….

    MUCHAS GRACIAS

  5. Juan Carlos says:

    bien, ahora, como hago para ver las Versiones previas de la carpeta o bien las llamadas instantaneas de volumen desde linux cunado observo la carpeta compartida por Windows?

    Se entiende que esta disponible para los usuarios Windows de la red pero no para los usuariso Linux

    Agradecere la respuesta

Comments are closed.