This is an old revision of the document!
Compartición de archivos entre Linux y Windows con Samba
Objetivo: Crear una carpeta compartida en Debian y acceder a ella desde Windows mediante SMB.
Una máquina Debian actuará como servidor de aula y un equipo Windows 11 como cliente. Ambos estarán conectados a la misma red privada de VirtualBox.
Pondremos en cada sistema operativo 2 tarjetas de red, una en NAT y otra en adaptador puente
| Equipo | Interfaz | IPv4 | Máscara |
|---|---|---|---|
| Servidor Debian | enp0s8 | 192.168.26.10 | 255.255.255.0 |
| Cliente Windows 11 | Ethernet | 192.168.26.20 | 255.255.255.0 |
1. Configuramos la interfaz de Debian. Configuramos la tarjeta de red adaptador puente de una de las formas que hemos aprendido
2. Configurar Windows 11. En Windows abre Configuración, Red e Internet, Configuración de red avanzada, Más opciones del adaptador. Con botón derecho en Ethernet entra en Propiedades, selecciona Protocolo de Internet versión 4 y pulsa Propiedades.
- Marca Usar la siguiente dirección IP.
- Escribe 192.168.26.20 como dirección IP y 255.255.255.0 como máscara.
- Deja vacías la puerta de enlace y los DNS, porque este ejemplo no dispone de router ni requiere resolver nombres.
3. Comprobar la configuración y hacer ping. Primero se revisan los datos locales; después se prueba la comunicación entre ambos equipos.
# En Debian ip -br addr ping -c 4 192.168.26.20
ipconfig ping 192.168.26.10
4. Observar ARP. Al estar ambos equipos en la misma red, el cliente necesita conocer la dirección MAC del servidor mediante ARP.
ip neigh show traceroute -n 192.168.26.10
5. Instalar Samba y crear el grupo de trabajo local. Se crea un grupo específico para gestionar los permisos de la carpeta compartida.
sudo apt update sudo apt install samba smbclient sudo groupadd -f redlocal sudo usermod -aG redlocal alumno
samba instala el servidor SMB. smbclient permite hacer una comprobación desde Linux. groupadd -f no genera error si el grupo ya existe. usermod -aG añade al usuario al grupo sin quitarle otros grupos. He utilizado como usuario alumno, pero deberías de poner el usuario que has creado
6. Crear la carpeta y aplicar permisos Linux. La carpeta se coloca fuera de /home para que su función sea claramente la de recurso compartido.
sudo install -d -o alumno -g redlocal -m 2770 /srv/recursos ls -ld /srv/recursos
install -d crea la carpeta. -o y -g asignan propietario y grupo.
El permiso 2770 permite leer, escribir y entrar al propietario y al grupo; el primer 2 activa setgid, de modo que los archivos nuevos conservan el grupo redlocal.
7. Dar una contraseña Samba al usuario. Samba mantiene su propia base de credenciales. La cuenta debe existir previamente en Linux.
sudo smbpasswd -a alumno
Puede coincidir con la contraseña Linux, pero en un entorno real conviene aplicar una política de contraseñas adecuada.
8. Añadir el recurso a la configuración de Samba. Al final de /etc/samba/smb.conf se incorpora una sección con el nombre visible del recurso.
sudo nano /etc/samba/smb.conf
[Recursos] path = /srv/recursos browseable = yes read only = no valid users = alumno force group = redlocal create mask = 0660 directory mask = 2770
path indica la carpeta real. browseable permite verla al explorar el servidor. read only = no autoriza cambios. valid users limita el acceso a alumno. Las máscaras determinan permisos para nuevos archivos y carpetas.
9. Validar y arrancar el servicio. Nunca se debe reiniciar Samba sin comprobar antes que el archivo es válido.
sudo testparm sudo systemctl restart smbd sudo systemctl enable smbd sudo ss -ltnp | grep ':445'
testparm revisa la sintaxis de smb.conf.
smbd ofrece el servicio SMB.
ss muestra que el servidor escucha en el puerto TCP 445.
10. Conectar desde Windows. En el Explorador de archivos escribe la ruta completa en la barra de direcciones.
\\192.168.26.10\Recursos
También puedes asignar una unidad desde el Símbolo del sistema de Windows.
net use Z: \\192.168.26.10\Recursos /user:alumno
Windows solicitará el usuario alumno y la contraseña definida con smbpasswd. La segunda orden asigna el recurso a la unidad Z.
11. Probar creación y lectura de un archivo. Crea desde Windows un archivo llamado prueba_samba.txt y escribe una línea. Después comprueba en Debian que aparece con el grupo redlocal.
ls -l /srv/recursos smbclient -L //127.0.0.1 -U alumno
La primera orden confirma los permisos Linux. La segunda lista los recursos publicados por el propio servidor y verifica que la cuenta Samba funciona.
