Compartiendo discos en red.

 

  • Compartiendo discos de red desde nuestra Raspberry Pi 3.
  • Montando Samba.
  • Configurando disco públicos en la red local.
  •  

    Material requerido.

    Vista lateral  Una Raspberry Pi 3, aunque valen la 2 y la 1

     

     

     

    Sirviendo discos a la red

     

    En nuestra última sesión dedicada a la Raspberry Pi, vimos cómo conectar con un disco de red compartido desde Windows. Afortunadamente, cada día es más fácil relacionar los 3 sistemas principales entre ellos: Windows, OSX y Linux, sin restricciones.

    Pero a veces lo que te puede interesar es otra cosa de lo más útil: Convertir tu Raspi en un disco de red tipo NAS (Network  Attached Storage) de modo que desde otros equipos puedes leer y grabar archivos compartidos.

    Este tipo de discos son cada vez más comunes porque, como decíamos anteriormente, todos acabamos teniendo varios PCs o dispositivos entre los que nos interesa compartir archivos y documentación y al final necesitamos una manera de resolverlo.

    Una manera es comprar uno de esos discos NAS que cuestan una pasta. Otra más barata consiste en utilizar tu Raspberry conectándole un disco USB por ejemplo y compartiéndolo en red como si fueras todo servidor de Windows.

    Y de esto va esta sesión.

     

    Conectando un disco USB a nuestra Raspberry.

     

    Vale. Seguro que todos sabéis conectar un disco USB. No tiene mucho secreto. Lo que quizás no sepáis es que al hacerlo, tal y como os comentaba en la sesión anterior se monta en un directorio propio, y desde ahí vemos su contenido.

    Para este ejemplo voy a usar un pendrive USB, pero sería exactamente igual usar un disco USB si lo prefieres. La idea es que se montará en automático y se verá colgando de la carpeta /media.

    • Afortunadamente ya quedaron atrás los tiempos en los que para montar un disco USB había que hacerlo a mano mediante el comando mount.
    • Afortunadamente hoy en día este tipo de discos se montan en automático. 

    Probablemente en cuanto insertes el disco te pedirá una contraseña de usuario para montarlo:

    Solicita clave de usuario

    Lo normal es que baste con la contraseña del usuario pi, que es la de siempre (Raspberry) si no la has cambiado.

    Después te va a preguntar qué quieres hacer con ese disco, lo que resulta bastante estúpido ya que tienes que dar intro para que lo abra, y verás su contenido.

    Abriendo un disco USB

    Fíjate en primer lugar que montará un directorio colgando de /media/pi cuyo nombre es el nombre de volumen del propio disco, en mi caso USB 3.

    Ya podemos acceder sin restricciones  a nuestro disco, pero naturalmente, esto nos permite ver su contenido y escribir en él, pero no hemos activado su uso compartido a otros usuarios de red que es lo que nos interesa ahora mismo.

     

    Compartiendo un disco en red

     

    Para que otros usuarios de la red puedan acceder a nuestro disco compartido, necesitamos en primer lugar instalar los programas adecuados. Y para ello tenemos que instalar Samba (Esta vez sí)

    sudo apt-get install samba

    Te pedirá confirmación. Dásela y adelante. Instala ahora:

    sudo apt-get install samba-common-bin

    Con esto resolvemos la cuestión del soft necesario para compartir recursos con Windows, pero aún tenemos que resolver un par de detalles.

    El primero es crear un usuario autorizado de Samba que pueda acceder a los discos. ¿Por qué no pi, al que ya estamos acostumbrados? Adivinad el password que voy a poner:

    sudo smbpasswd –a  pi

    Creando un usuario samba

    Creamos un usuario pi con derechos para acceder a los discos samba. De este modo podremos usar pi / raspberry desde Windows cuando nos conectemos a los recursos compartidos.

    Este comando smbpasswd crea tantos usuarios Samba como queráis y podéis asignar a cada uno una contraseña diferente. Fíjate que te pide que la repitas para evitar problemas y confusiones.

    Falta una cosa más. Configurar los nombres y características de la red que vamos a publicar  como por ejemplo su nombre de grupo Windows y cosas así. ¿Y cómo se hace algo así siempre en Linux?

    Pues editando un fichero de texto, como no. En este caso:

    sudo nano /etc/smba/smb.conf

    No os asustéis por la cantidad de rollo que va a salir en este fichero. Tenéis que entender que Linux  es un sistema muy potente y que Samba puede simular un Windows Server, lo que supone un cierto trabajo de configuración de parámetros y opciones.

    Pero si te fijas, la mayor parte de las líneas empiezan por el símbolo #, lo que supone que son comentarios, y solo están ahí para hacernos la vida más sencilla (Aunque al pronto nadie lo diría)

    Buscad una línea que pone workgroup y aseguraros de que queda así:

    workgroup = WORKGROUP

    Este será el nombre del grupo de trabajo Windows al que vamos a conectarnos y al que permitiremos que nos vea.

    • El nombre por defecto de este valore s precisamente workgroup, que es el valor habitual que Windows supone a sus grupos de trabajo.
    • Pero debes asegurarte de que coincide con el de tu grupo de trabajo. Si no sabes cuál es deja este, es tu mejor opción.[/fancy-ul] [/three-fourth]

    Ahora solo nos falta añadir un par de líneas al final del fichero smb.conf:

    [USB]
    path =  “/media/USB 3”
    valid users = pi
    writeable = yes
    public = yes

    Ahora tenemos que activar los cambios, porque no se activan hasta que Samba se reinicie:

    sudo samba restart

    Antes de nada un par de comentarios:

    • En path yo he escrito el mío entre comillas porque por un error de principiante, el nombre de mi disco es USB 3 con espacio en medio. En Linux los espacios son válidos en los nombres pero deben pasarse así entrecomillados. Si el nombre de tu disco no tiene ese problema puedes obviar las comillas.
    • Si quieres crear varios usuarios autorizados, puedes listarlos en valid users separados por comas.
    • writeable = yes significa que se puede escribir en el disco, es decir que puedes guardar ficheros además de leerlos. Por defecto es no.
    • Y public = yes, significa que publique el nombre del disco (USB, para mi) en la red de Windows cuando alguien pregunte, para que lo vean directamente lo que resulta más cómodo que andar buscando su IP y tal.

    Y eso es todo. Podemos comprobarlo yendo a Windows por ejemplo (O a tu Linux o Mac) y arrancando el explorador de archivos busca al final del panel de la derecha la pestaña red:

    Explorando la red proxima con windows

    Verás que a la derecha y debajo se muestran los nombres de recursos públicos en la red Windows. Y como no he cambiado el nombre de host a mi Raspi (Y un día tendríamos que hablar de ello) vemos mi PC  principal, charly y mi nueva tableta Windows 10.

    Si ahora abres la Raspberry haciendo doble click en su icono:

    Recurso compartidos de raspberry desde windows

    Ves el disco pi y el usb. Nuevo click click al usb:
    Desplegando el disco compartido

    Y eso es todo, no ha sido para tanto ¿No? Por cierto, la próxima vez que arranques tu disco USB seguirá compartiéndose como si nada. No es necesario que hagas nada más.

    Se le echa mucho teatro a todo esto del Samba (Y ciertamente puede complicarse mucho según con qué) pero compartir un disco público desde tu Raspberry es tan sencillo como esto.

     

    Cambiando el nombre de host

     

    Cuando instalas tu Raspberry Pi viene configurada por defecto para llamarse Raspberry si no recuerdo mal. ¿Es esto grave o incómodo para algo?

    Bueno, en realidad no está mal. En muchas ocasiones podemos preferir llamarla de otra manera, pero el problema viene cuando tienes más de una Raspberry conectada a tu red.

    Que ambas se llamen igual no solo es molesto sino que puede presentar ciertos inconvenientes ya que en la red de Windows se verían con el mismo nombre y bajo ciertas circunstancias esto sí que podría ser un problema, por lo que resulta interesante que veamos cómo cambiarlo.

    En realidad es bastante sencillo y basta con cambiar un par de ficheros en tu Raspbian / Linux, que por supuesto hay que saber cómo se llaman y donde están, pero eso también es fácil:

    sudo nano /etc/hosts

    Este fichero es una reliquia de un pasado en el que aún no se habían inventado los servidores de nombres o DNS, y sirve para establecer nombres propios y su dirección IP correspondiente sin necesidad de recurrir a dichos DNS (Y con los que se pueden hacer unas bromas de lo más divertidas)

    Asegúrate de cambiar la última línea que dice

    127.0.0.1      raspberrypi

    Por esta otra, que contiene el nombre que quieres usar (Apuntalo que te hará falta más adelante)

    127.0.0.1     Raspi_1          //Que es el nombre que voy a usar yo

    Guarda los cambios con [CTRL]G y luego si y después [CTRL]x

    Aun hay que hacer otro cambio en otro fichero

    sudo nano /etc/hostname

    Y aquí tienes que cambiar el nombre que figura, normalmente Raspberry, por el que has puesto antes en el fichero anterior. (Asegúrate de que sean iguales, con sus mayúsculas y minúsculas)

    En mi caso quedara:

    Raspi_1

    Salva el fichero y todo listo. Para que los cambios se activen basta con que reinicies tu Raspberry y al ir a mirar a la red de Windows ya verás activo el cambio:

    Cambiando el nombre de host

    Fíjate en la columna de la izquierda que ha cambiado el nombre de tu Raspberry. Además tu Raspberry habrá publicado en tu red el nombre Raspi_1 y puedes usarlo en logar de su IP. Mira esto, cuando haces un ping desde Rasbian:

    ping raspi_1

    ejemplo de nombre publicado

    Esto puede parecer casi normal desde la Raspberry¿Pero podría hacer lo mismo desde Windows? ¿Funcionaria un ping a este nombre?

    Pues sí señor, el nombre se ha replicado por la red ¡Sorpresa! Haz un ping desde el interprete de comandos de Windows:

    Ping raspi_1

    El nombre s eve en windows

    Y como ves también resuelve el nombre correctamente.

     

     

     

    Resumen de la sesión

     

  • Hemos visto como montar un disco USB o normal en tu Raspberry Pi.
  • Vimos como instalar Samba.
  • Configuramos Samba para compartir estos discos con la red local.
  • Vimos como acceder a ellos desde un equipo Windows.