Compartir archivos en red con Samba en tu Raspberry

Aunque en el artículo anterior sobre compartir archivos con NFS en Raspberry comenté sobre las bondades de este sistema frente a otros, existen ocasiones donde no es posible utilizarlo. Y no es posible utilizarlo por el simple hecho de que los otros sistemas operativos no pueden acceder a él. En este caso nos podemos decantar por otra opción para compartir archivos en red con Samba.

Un uso muy interesante de la Raspberry es como almacenamiento de todos los documentos de una oficina. De esta forma, cualquier usuario puede acceder al documento editarlo y dejarlo de nuevo allí, para que pueda acceder otro usuario al mismo. Para ello, y dado que la capacidad de almacenamiento de la Raspberry Pi es reducida, sería interesante conectarle un disco duro adicional (con fuente de alimentación propia).

Si en tu oficina o negocio, utilizáis solo sistemas operativos basados en Linux, la solución evidentemente, es NFS, pero en otro caso sería Samba.

¿Como instalar y configurar Samba?

Compartir archivos en red con Samba en tu Raspberry

Instalar u configurar tu Raspberry para compartir archivos en red con Samba

¿Que es eso de Samba?

Samba es un software libre licenciado bajo GNU/GPL, que proporciona servicios de impresión e intercambio de archivos utilizando el protocolo SMB/CIFS para todo tipo de clientes, ya sea DOS, Windows, OS/2, Linux y muchos otros. Gracias a Samba, es posible que equipos con GNU/Linux, Mac OS X o Unix funcionen como servidores o actúen como clientes en redes Windows. Además de esto, Samba, permite validar usuarios, hacer de dominio Active Director en redes basadas en Window, servir colas de impresión, directorios compartidos y autenticar con su propio archivo de usuarios.

Como puedes ver Samba da muchos mas servicios además de simplemente compartir archivos en red.

Compartir archivos en red con Samba

Como verás a continuación, configurar tu Raspberry para compartir archivos en red con Samba es al realmente sencillo, y en pocos pasos lo tendrás completamente operativo.

Con estos pocos pasos, todos los usuarios de la red podrán acceder fácilmente a los archivos compartidos, para trabajar de forma cooperativa.

Instalar los paquetes necesarios

El primer paso es instalar los paquetes necesarios en la Raspberry para poder compartir archivos en red con Samba.

Accede a tu Raspberry vía ssh, en mi caso ejecutaré la siguiente orden (en tu caso la IP seguro será otra),

ssh pi@192.168.1.48

Una vez en la Raspberry Pi 3, ejecutaremos la siguiente orden que instalará el servidor samba en la misma,

sudo apt install samba samba-common-bin

Al ejecutar la orden anterior, nos indicará que necesita instalar una veintena de paquetes extras. Le indicamos que deseamos continuar.

Configuración básica

Vamos a configurar el servidor, para ello, necesitamos editar el archivo de configuración. Suponiendo no te has movido de tu Raspberry, es decir, sigues dentro vía ssh, ejecuta la siguiente orden,

sudo nano /etc/samba/smb.conf

Aquí tenemos que modificar el nombre del grupo de trabajo e indicar si tendrá soporte para windows. Esta parte se encuentra en la parte superior del archivo de configuración, en la sección [global]. En mi caso esta parte queda como sigue,

[global]

## Browsing/Identification ###

# Change this to the workgroup/NT-domain name your Samba server will part of
   workgroup = WORKGROUP

# Windows Internet Name Serving Support Section:
# WINS Support - Tells the NMBD component of Samba to enable its WINS Server
   wins support = yes

¿Que y como compartimos archivos en red?

Ahora que ya tenemos identificado el grupo de trabajo, y hemos habilitado para el acceso desde Windows, tenemos que indicar que directorios compartimos y en que condiciones. Para ello, tenemos que editar igualmente el archivo anterior /etc/samba/smb.conf y añadir tantas directorios como consideremos.

Para definir que y como compartir, voy a poner como ejemplo uno de los directorios que tengo compartido. Ten en cuenta que para editar el archivo deberás tener permisos de administrador, así deberás ejecutar la siguiente orden,

sudo nano /etc/samba/smb.conf

Yo utilizo nano como mi editor de texto para la terminal, sustitúyelo por el que tu utilices. El contenido que debemos añadir al archivo para el directorio share será el siguiente,

[share]
   comment = Share Directory
   path = /srv/samba/share
   browseable = Yes
   writeable = Yes
   only guest = no
   create mask = 0644
   directory mask = 0755
   public = no

La definición del directorio es como sigue,

  • [share]. Es el nombre del directorio tal y como lo veremos desde nuestro cliente.
  • comment. Es un simple comentario que solo te servirá a ti en principio.
  • path. Es la ruta en la que se encuentra el directorio que compartimos en nuestra Raspberry Pi.
  • browseable. Indica si damos permiso para navegar por los subdirectorios de nuestro directorio compartido.
  • writeable. Da permiso para escribir en el directorio.
  • create mask y directory_mask. Estos dos parámetros se corresponden con los permisos que se aplican a los ficheros y directorios nuevos. Recomendable indicar los valores que he puesto para evitar que cualquiera fuera de este directorio pueda modificar. Te recomiendo que leas el artículo sobre los permisos en Linux para que tengas claros los posibles valores que puedes asignar.
  • public. Define si es necesaria contraseña para conectarse.

Existen muchos mas parámetros para la configuración. Yo he puesto los que utilizo, pero te recomiendo que le des un vistazo a la configuración de samba para tener muchas mas información.

Contraseña

Samba tiene su propia gestión de contraseñas, con lo que es necesario asignar a cada usuario su propia contraseña. Para ello, ejecuta la siguiente orden en un emulador de terminal,

sudo smbpasswd -a pi

Actualizando la configuración

Una vez, hemos realizado todos estos cambios, es necesario reiniciar Samba para que surtan efecto y poder compartir archivos en red según los parámetros definidos. Las ordenes son las siguientes,

  • Para reiniciar Samba,
sudo service smbd restart
  • Para detener Samba,
sudo service smbd stop
  • Para iniciar Samba,
sudo service smbd start

Conclusiones

Con todo esto, ya tenemos nuestro servicio Samba en marcha, de forma que podremos compartir archivos en red y también directorios, no solo con nuestros equipos GNU/Linux, sino también con otros equipos de otros sistemas operativos como Windows o MacOSX.

De cualquier forma, te recomiendo que utilices también NFS en Raspberry, sobre todo si todos tus equipos son Linux o Android (por ende) porque como comenté en ese artículo tienes la ventaja de que te da mayor velocidad para archivos pequeños. Pero, evidentemente, eso ya dependerá de las características de tu red, y de los dispositivos conectados a ella.


Más información,

Si te ha gustado el artículo, apúntate y te mantendré actualizado sobre el que es el mejor sistema operativo. Te mostraré como mejorar tu entorno de trabajo y conseguir ser mucho mas productivo

Publicado en la categoría... Raspberry Pi
Etiquetado como... , , , , ,
  • Juan Alberto Cañero Tamayo

    Como de costumbre, excelente artículo.

    Por cierto, no sé si la conoces, pero existe también para Raspberry la distribución “Open Media Vault”, un NAS que te permite compartir ficheros por NFS, SAMBA, etc… y se configura a través de una agradable interfaz web.

    La distribución, entre otras características, viene preparada para escribir lo mínimo en la tarjeta SD, de manera que amplía la vida media mucho más.