====== Práctica Compartición de archivos entre Linux y Windows con Samba ======
**Versión:** V_26_11
**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.