Compartir archivos en red con Samba en tu Raspberry

Este es uno de los capítulos del tutorial La Raspberry Pi. Primera primeros pasos.. Encontrarás los enlaces a todos los de capítulos, al final de este artículo.

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 systemctl restart smbd
  • Para detener Samba,
sudo systemctl stop smbd
  • Para iniciar Samba,
sudo systemctl start smbd

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,

7 comentarios en “Compartir archivos en red con Samba en tu Raspberry

  1. JU
    Juan Alberto Cañero Tamayo hace 7 años

    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.

    1. EL
      El atareao hace 6 años

      Hola Juan Alberto.
      No la he probado, pero lo tendré en cuenta para probarlo.
      Gracias y un saludo.

  2. DA
    Davito hace 6 años

    desde la mas completa ignorancia, una vez que he seguido el tutorial al pie de la letra, ahora ¿como accedo desde el otro equipo (ubuntu, por si acaso) a la raspberry pi? se supone que debe aparecer un icono de »carpeta de red» en algun lado? ¿hay que señalar alguna carpeta por otro lado?

    1. EL
      El atareao hace 6 años

      En Nautilus busca desde Otras distribuciones.
      Un saludo.

  3. JO
    José Bau hace 3 años

    Hola: tengo un cierto expediente X que no acabo de poder resolver. El caso es que tengo dos raspbery pi con samba. En ambas desde Windows o linux accedo sin problemas, pero en una de ellas cuando intento acceder desde android para cada archivo o directorio me pide una o dos veces el usuario y la contraseña, sin embargo la otra no plantea problemas y unas vez puesto la primera vez permite el acceso sin requerirla más. Y me pasa con los dos móviles android que tengo. ¿Se sebe de algun otro caos o algún paquete adicional a instalar que lo arregle?

  4. DA
    David Pita hace 2 años

    Buenas, no consigo acceder desde la raspberry a la red, si le pongo smb://IP se queda pensando eternamente. Desde la red a la raspberry se puede acceder, pero desde las raspberry no puedo acceder a los compartidos de los otros equipos.

    1. AJ
      ajgutierrez hace 1 año

      Verificaste que tu servicio samba este activo, me pasa lo mismo pero no es porque el servicio smb no se logra levantar, comprendo que debe de ser un problema en el archivo de configuración pero aún estoy leyendo y probando que parte es.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *