Compartir discos o carpetas en Linux

Compartir disco con Samba

Compartir discos o carpetas en Raspberry Pi con Raspian

Para compartir carpetas o discos duros desde un a Raspberry Pi con Raspian o en otros sistemas basados en Debian se puede usar Samba, que es una implementación de servicios y protocolos que permite que se puedan compartir archivos, carpetas y discos duros completos entre ordenadores, manteniendo toda su configuración en un único archivo localizado en /etc/samba/smb.conf.
Tanto las carpetas o directorios compartidos como los discos duros se verán en los ordenadores remotos como carpetas compartidas.
Se pueden crear diferentes usuarios y limitar los accesos a determinadas carpetas compartidos a según que usuarios.

Para poder configurar Samba hay que actualizar el sistema en primer lugar, en la Raspberry Pi:

sudo apt  update
sudo apt upgrade

Posteriormente se instala Samba:

sudo apt install samba

Compartir unidad de disco

El siguiente paso es configurar la unidad de disco que se va a compartir, la cual debe estar previamente montada en el sistema.

Se edita el archivo de configuración de Samba smb.conf, por ejemplo con nano ubicado en:

sudo nano /etc/samba/smb.conf

Y se añade el siguiente código al final del mismo:

[Nombre_Unidad]

comment = Nombre_Unidad
path = /ruta/de_la_unidad/Nombre_Unidad
public = no
writeable = yes
browseable = yes
only guest = no
create mask = 0777
directory mask = 0777

Aunque sus directrices parecen obvias, cada una significa los siguiente:
[Nombre_Unidad] Nombre del disco duro y que será el que se visualice como carpeta compartida en el resto de los ordenadores.
comment = Nombre_Unidad Descripción, en este caso he puesto el nombre de la unidad
path = /ruta/de_la_unidad/Nombre_Unidad Ruta donde se encuentra montada la unidad
public = no No es accesible a todo el mundo
writeable = yes Se permite la escritura
browseable = yes Es visible en la red
only guest = no No está permitido el acceso a invitados
create mask = 0777 Permiso de lectura y escritura
directory mask = 0777 Permiso de lectura y escritura

Por último se reinicia el servicio Samba:

sudo /etc/init.d/smbd restart

La unidad ya debe de ser visible y accesible desde la red y par acceder directamente se puede usar el protocolo smb://

smb://192.168.XXX.XXX

Usuario en Samba

Se pueden crear usuarios en Samba y si, por ejemplo, cse crea el usuario que ya existe en el ordenador servidor o Raspberry será visible una carpeta con el nombre de dicho usuario que tras autenticarse se accederá a /home/usuario/.

sudo smbpasswd -a usuario

Tras pedir dos veces la contraseña que se le quiera asignar, el usuario y su carpeta compartida ya estarán habilitados.

Compartir carpeta

Para compartir una carpeta de un disco duro el proceso es prácticamente el mismo que el que se ha seguido para compartir una unidad.

El paso previo, en este caso, es crear la carpeta que se va a compartir y darle los permisos necesarios:

sudo chmod -R 777 /home/usuario/carpeta_compartida/

Se añade el siguiente código al final del mismo fichero de configuración /etc/samba/smb.conf:

[Nombre_Carpeta]

comment = Nombre_Carpeta
path = /home/usuario/Nombre_Carpeta
public = no
writeable = yes
browseable = yes
only guest = no
create mask = 0777
directory mask = 0777

Tanto al crear una carpeta compartida como al crear una unidad compartida los valores puestos pueden diferir según las necesidades de cada situación o persona.

Comprobación

Para comprobar que las modificaciones que se han realizado en el archivo de configuración se puede ejecutar:

testparm

Si todo está bien mostrará un mensaje aproximadamente igual al siguiente texto:

Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Weak crypto is allowed
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

Permitir y denegar IPs

Se puede permitir el acceso o bloquear el mismo a una o varias IPs o incluso a un rango de ellas.

Permitir acceso

Permitir una o varias IPs que se separan por comas:

hosts allow = 192.168.0.43, 192.168.0.88

Permitir todas las IPs en el rango 192.168.. excepto una:

hosts allow = 192.168. EXCEPT 192.168.0.88

Permitir todo un rango:

hosts allow = 192.168.0.0/255.255.255.0

Permitir hosts específicos:

hosts allow = raspi4, raspi400, pc_de_miguel

Denegar acceso

De forma automática todo lo que no esté permitido en las reglas anteriores, está denegado.
En caso de conflicto «permitir» tiene preferencia sobre «denegar».
Denegar una IP:

hosts deny 192.168.0.32

Especificaciones del fichero de configuración de Samba

Sobre mi

Trabajo en el desarrollo de webs profesionales desde hace más de 25 años.
También me dedico a mis proyectos personales.

Últimas notas publicadas

Categorías

Scroll al inicio