Y seguimos con la Raspberry PI y es que estoy montando en casa un servidor Raspberry PI conectado a un disco duro externo.
Este servidor es accesible a través de la red desde un Amazon FireStick donde tengo instalado Kodi y desde donde puedo catalogar todas las películas y series que tengo descargadas.
Para poder compartir esta carpeta en red y que sea visible por cualquier dispositivo usamos SAMBA o como habréis visto en alguna de vuestras máquinas MAC, smb.
¿Que es 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 Raspberry PI con Samba
Lo primero que hay que hacer 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),
1 |
<span class="n">ssh</span> <span class="n">pi</span><span class="mf">@192.168.1.28</span> |
Una vez en la Raspberry Pi 3, ejecutaremos la siguiente orden que instalará el servidor samba
en la misma,
1 |
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 de SAMBA en Raspberry PI
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,
1 |
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,
1 2 3 4 5 6 7 8 9 10 |
<span class="k">[global]</span> <span class="c1">## Browsing/Identification ###</span> <span class="c1"># Change this to the workgroup/NT-domain name your Samba server will part of</span> <span class="na">workgroup</span> <span class="o">=</span> <span class="s">WORKGROUP</span> <span class="c1"># Windows Internet Name Serving Support Section:</span> <span class="c1"># WINS Support - Tells the NMBD component of Samba to enable its WINS Server</span> <span class="na">wins support</span> <span class="o">=</span> <span class="s">yes</span> |
Una vez que 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,
1 |
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,
1 2 3 4 5 6 7 8 9 |
<span class="k">[share]</span> <span class="na">comment</span> <span class="o">=</span> <span class="s">Share Directory</span> <span class="s"> path = /srv/samba/share</span> <span class="s"> browseable = Yes</span> <span class="s"> writeable = Yes</span> <span class="s"> only guest = no</span> <span class="s"> create mask = 0644</span> <span class="s"> directory mask = 0755</span> <span class="s"> public = no</span> |
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
ydirectory_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,
1 |
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,
1 |
sudo systemctl restart smbd |
- Para detener Samba,
1 |
sudo systemctl stop smbd |
- Para iniciar Samba,
1 |
sudo systemctl start smbd |
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.
Más información,
Fuente: