La mejor forma de compartir archivos con Samba en tu red y por qué
Si quieres compartir carpetas entre Linux, Windows y macOS en la misma red local, la instalación que conviene a la mayoría es Samba como servidor standalone con autenticación por usuario local. Funciona en cualquier distribución Linux actual, usa el protocolo SMB/CIFS nativo de Windows y no tiene coste de licencia: Samba se distribuye bajo licencia GPL. Para una casa u oficina pequeña ofrece control real de quién entra a cada carpeta sin meterse en un dominio.
Para una red doméstica simple donde solo quieres que todos vean una carpeta sin contraseña —por ejemplo, para una impresora compartida o una carpeta de películas en el salón—, te compensa un recurso público con guest ok = yes y map to guest = Bad User. Es más rápido de montar, pero cualquiera con acceso a la red podrá leer y, si lo permites, escribir. No lo uses si hay documentos personales o copias de seguridad.
Si tu red ya usa Active Directory con Windows Server o necesitas que los permisos se gestionen desde usuarios y grupos del dominio, entonces conviene unir Samba al dominio como miembro y usar autenticación Kerberos con security = ADS y winbind. Requiere más configuración —unión al dominio, sincronización horaria con NTP y DNS correcto— y mantenimiento, pero evita duplicar usuarios y respeta las políticas del dominio. Datos comprobados en septiembre de 2026.
Qué es Samba y qué hace con SMB/CIFS y Active Directory
Samba es una suite libre que implementa en Linux y otros sistemas tipo Unix el protocolo SMB/CIFS. Ese protocolo es el que usa Windows para compartir archivos e impresoras en red, y el que entienden también macOS y la mayoría de reproductores y NAS. Con Samba, un equipo Linux actúa como servidor de archivos: publica carpetas en la red y los clientes las ven como unidades de red estándar, sin instalar nada raro en Windows.
Puede funcionar de tres formas. Como servidor standalone, gestiona sus propios usuarios con smbpasswd y es independiente de cualquier dominio. Como miembro de dominio, se une a un Active Directory y delega la autenticación a los controladores de dominio. Como controlador de dominio AD, emula un dominio con su propio LDAP y Kerberos, aunque esta última función exige bastante planificación.
Samba es software libre bajo licencia GPL y su documentación de referencia está en la documentación oficial de Samba. El proyecto publica versiones estables de la rama 4.x —en 2026 la serie habitual en distribuciones es la 4.19 y 4.20— y corrige vulnerabilidades de SMB sin coste.
Glosario breve: SMB/CIFS: protocolo de compartición de archivos en red. Demonio smbd: proceso que sirve archivos. nmbd/wsdd: descubrimiento en red. testparm: valida smb.conf. cifs-utils: herramientas para montar recursos SMB en Linux. Active Directory: servicio de directorio y autenticación de Windows.
Qué necesitas antes de instalar Samba
Antes de tocar la configuración necesitas tener claro el sistema base y los permisos de red. Samba corre en cualquier distribución Linux moderna —Ubuntu 24.04, Debian 12, Fedora 40, Linux Mint 21— siempre con permisos de administrador (sudo). Verifica la versión instalada después con samba --version y smbd --version; ambas deben devolver la misma rama 4.x.
En red, Samba escucha en los puertos TCP 445 para SMB directo y, si mantienes compatibilidad con NetBIOS, TCP 139 y UDP 137-138. Si usas cortafuegos, abre al menos TCP 445 entre los equipos que compartirán archivos. En el almacenamiento, crea las carpetas fuera del home personal, por ejemplo en /srv/samba/publico y /srv/samba/privado, y decide de antemano los permisos del sistema de archivos con chmod y chown.
Comprueba esta lista antes de instalar:
- Distribución Linux actualizada y acceso sudo verificado con
sudo -v. - Paquetes necesarios disponibles en repositorios:
sambapara el servidor,smbclientpara probar conexiones ycifs-utilspara montar recursos en clientes Linux. - Puertos TCP 445 y, si usas NetBIOS, 137-139 accesibles en el cortafuegos local y sin bloqueo del router entre VLAN.
- Carpeta o partición con espacio suficiente y sistema de archivos que soporte permisos Unix (ext4, XFS, btrfs).
- Nombre de equipo y grupo de trabajo definidos —por defecto
WORKGROUP— para que Windows detecte el servidor sin DNS extra. - Si integrarás con Active Directory, hora sincronizada por NTP y DNS que resuelva el dominio, porque Kerberos falla con desfases superiores a 5 minutos.
- Usuario Linux creado para cada cuenta que tendrá acceso con contraseña Samba distinta de la del sistema.
Sin esta base, cualquier error posterior de autenticación o de permisos se confunde con un fallo de Samba cuando en realidad es de red o de sistema de archivos.
Métodos para instalar y usar Samba, comparados
Hay tres formas habituales de desplegar Samba y no son equivalentes en seguridad ni en mantenimiento. Esta tabla las pone lado a lado con datos verificables.
| Método | Dificultad | Coste de licencia | Autenticación | Gestión de permisos | Firewall / SELinux-AppArmor | Compatibilidad Windows / Linux / macOS |
|---|---|---|---|---|---|---|
| Recurso público standalone (guest) | baja: 3 directivas en smb.conf | 0 EUR, GPL | invitado sin contraseña | permisos Unix + guest ok = yes, read only |
requiere abrir TCP 445; SELinux con samba_share_t si aplica |
sí / sí con cifs-utils / sí |
| Recurso privado standalone con usuario | media: crear usuario + smbpasswd | 0 EUR, GPL | usuario y contraseña local | permisos Unix + valid users, read only, writable |
igual que anterior; sin dato extra | sí / sí con cifs-utils / sí |
| Miembro de dominio Active Directory | alta: unión a AD + winbind/Kerberos | 0 EUR, GPL | AD vía Kerberos | ACL de dominio + permisos Unix | igual + sincronización NTP y DNS; reglas adicionales de Kerberos TCP 88 | sí nativo / sí con winbind / sí |
El recurso público es el más rápido, pero expone todo a cualquier dispositivo de la red; su pega real es la ausencia de trazabilidad. El recurso privado añade control por smbpasswd con un coste mínimo de gestión: un comando por usuario. La integración AD elimina la duplicación de cuentas y permite aplicar políticas del dominio, a cambio de depender de la infraestructura de Windows y de mantener el tiempo y el DNS perfectamente alineados; si el controlador cae, el acceso falla.
Si solo necesitas compartir entre 2 a 5 equipos sin dominio, el standalone con usuarios es el equilibrio entre seguridad y simplicidad; deja AD para redes que ya lo usan.
Método 1: Instalar Samba y crear recurso compartido público y privado con smb.conf
Este método instala el servidor y publica dos carpetas: una abierta y otra con contraseña. Todos los comandos son para distribuciones basadas en Debian/Ubuntu; en Fedora cambia apt por dnf y ufw por firewalld.
- Instala los paquetes y verifica la versión. Ejecuta
sudo apt update && sudo apt install samba smbclient cifs-utilsy luegosamba --version. Deberías ver una rama 4.19 o 4.20 según tu repositorio. Consulta las notas de la versión de Samba si necesitas una función concreta. - Crea las carpetas y ajusta permisos del sistema. Por ejemplo:
sudo mkdir -p /srv/samba/publico /srv/samba/privadoysudo chmod 2775 /srv/samba/publicoconsudo chown nobody:nogroup /srv/samba/publicopara invitados, ysudo chown tuusuario:tuusuario /srv/samba/privadoconchmod 2770para el privado. El bit 2775 mantiene el grupo en archivos nuevos. - Haz copia de
smb.confy edita el archivo principal en/etc/samba/smb.conf. Añade al final:
[global]
workgroup = WORKGROUP
server string = Servidor Samba
map to guest = Bad User
usershare allow guests = yes
[publico]
path = /srv/samba/publico
browsable = yes
read only = no
guest ok = yes
create mask = 0664
directory mask = 0775
[privado]
path = /srv/samba/privado
browsable = yes
read only = no
guest ok = no
valid users = tuusuario
create mask = 0660
directory mask = 0770
- Valida la sintaxis con
testparm -s. Si devuelve errores, corrige antes de reiniciar;testparmdetecta directivas mal escritas y secciones duplicadas. La referencia de cada parámetro está en smb.conf. - Crea el usuario Samba. Debe existir primero como usuario Linux:
sudo adduser tuusuariosi no existe, luegosudo smbpasswd -a tuusuarioy activa consudo smbpasswd -e tuusuario. Sin este paso, el recurso privado rechazará la conexión aunque la contraseña de Linux sea correcta. - Ajusta el cortafuegos y el contexto de seguridad. En UFW:
sudo ufw allow Sambaosudo ufw allow 445/tcp. En sistemas con SELinux:sudo chcon -t samba_share_t /srv/samba/publicoysudo chcon -t samba_share_t /srv/samba/privadoo el acceso será denegado aunque los permisos Unix sean correctos. - Reinicia y habilita el servicio:
sudo systemctl restart smbd nmbdysudo systemctl enable smbd nmbd. En distribuciones recientesnmbdpuede ser sustituido porwsddpara descubrimiento; sinmbdno existe, ignora ese demonio y usawsdd. - Prueba en local:
smbclient -L //localhost -U tuusuariodebe listarpublicoyprivado, ysmbclient //localhost/privado -U tuusuariodebe permitirlsyput.
Limitación honesta: el recurso público con guest ok = yes no deja auditar quién modificó cada archivo y cualquier dispositivo en la misma red puede escribir si read only = no. Para datos personales, usa siempre el recurso privado y deja el público solo para contenido no sensible.
Método 2: Conectar y montar el recurso desde los clientes
Con el servidor ya publicado, toca acceder desde cada sistema. Necesitas la IP o el nombre del servidor y, para el recurso privado, el usuario creado con smbpasswd.
Desde Linux con smbclient y mount.cifs:
- Prueba la lista de recursos:
smbclient -L //192.168.1.10 -U tuusuarioosmbclient -L //192.168.1.10 -Npara invitado. La IP es un ejemplo; sustitúyela por la de tu servidor. Si el cortafuegos bloquea TCP 445, este comando se quedará colgado. - Acceso puntual interactivo:
smbclient //192.168.1.10/privado -U tuusuarioy luego usals,get archivo,put archivo. Útil para verificar credenciales sin montar nada. - Montaje temporal en una carpeta local:
sudo mkdir -p /mnt/privadoysudo mount -t cifs //192.168.1.10/privado /mnt/privado -o username=tuusuario,uid=$(id -u),gid=$(id -g). Para el recurso público añadeguesten vez deusername:sudo mount -t cifs //192.168.1.10/publico /mnt/publico -o guest,uid=$(id -u),gid=$(id -g). - Montaje persistente tras reinicio: crea un archivo de credenciales
~/.smbcredentialsconusername=tuusuarioypassword=tu_claveychmod 600 ~/.smbcredentials. Añade en/etc/fstab:
//192.168.1.10/privado /mnt/privado cifs credentials=/home/tuusuario/.smbcredentials,uid=1000,gid=1000,vers=3.0 0 0
Usa vers=3.0 o superior para forzar SMB3, que cifra el tráfico si el servidor lo soporta. La sintaxis de montaje está documentada en mount.cifs.
Desde Windows 10 y 11:
- En el Explorador escribe
\\192.168.1.10\privadoo\\192.168.1.10\publicoen la barra de direcciones. Windows usa SMB3 por defecto; si el servidor solo habla SMB1, la conexión fallará porque SMB1 está desactivado por seguridad desde Windows 10 1709. - Cuando pida credenciales, introduce
tuusuarioy la contraseña definida consmbpasswd, no la de Windows. Marca "Recordar credenciales" para persistencia o usa "Conectar a unidad de red" y asigna letra Z:. - Si no aparece el equipo por nombre, usa la IP. El descubrimiento por nombre NetBIOS depende de
nmbdowsdd; sin ellos, el nombre no se resuelve y solo funciona por IP o DNS.
Compatibilidad: Windows 10/11 habla SMB 3.0 y 3.1.1, Linux con cifs-utils 6.x habla SMB 3.x, y macOS desde 10.9 usa SMB2/3 como protocolo por defecto. Todas las combinaciones funcionan si fuerzas al menos SMB2; evita SMB1 por sus vulnerabilidades conocidas.
Si no funciona: fallos frecuentes y cómo comprobarlos
Cuando el recurso no aparece o pide contraseña sin aceptarla, el problema casi nunca es Samba en sí, sino cortafuegos, permisos o usuario mal creado. Revisa en este orden:
- Cortafuegos bloquea TCP 445. En Ubuntu con UFW,
sudo ufw statusdebe mostrarSambao445/tcp ALLOW. En Fedora con firewalld,sudo firewall-cmd --list-servicesdebe incluirsamba. Pruebanc -zv 192.168.1.10 445otelnet 192.168.1.10 445desde el cliente; si no conecta, abre el puerto en el servidor y en el router si hay VLAN aisladas. - Permisos del sistema de archivos incorrectos. Samba respeta primero
chmod/chownde Linux. Sils -ld /srv/samba/privadomuestradrwxrwx---pero el usuario no es propietario ni del grupo, el acceso falla con "NT_STATUS_ACCESS_DENIED" aunquesmbpasswdsea correcto. Corrige conchownychmody prueba de nuevo. - Usuario Samba no creado o deshabilitado.
sudo pdbedit -L -v | grep tuusuariodebe listar el usuario. Si no aparece, ejecutasudo smbpasswd -a tuusuario. Si aparece pero conAccount disabled, usasudo smbpasswd -e tuusuario. - SELinux o AppArmor deniega el acceso. En Fedora/RHEL,
sudo ausearch -m AVC -ts recent | grep sambamuestra denegaciones. Aplicasudo chcon -t samba_share_t /srv/samba/...osudo setsebool -P samba_enable_home_dirs onsi compartes homes. En Ubuntu con AppArmor,sudo aa-statusindica sismbdestá confinado. - smb.conf con errores de sintaxis. Ejecuta
testparm -sen el servidor. Cualquier línea conUnknown parameteroErrorimpide quesmbdcargue el recurso. Corrige y reinicia consudo systemctl restart smbd. - Protocolo SMB incompatible. Si Windows muestra "No se puede conectar porque SMB1 no está habilitado", no actives SMB1. Sube
server min protocol = SMB2en[global]y fuerzavers=3.0en el cliente Linux. - Diagnóstico rápido desde el cliente.
smbclient -L //192.168.1.10 -U tuusuariolista recursos si la red y la autenticación están bien.smbclient //192.168.1.10/privado -U tuusuario -c "ls"confirma lectura.journalctl -u smbd --since "10 min ago"en el servidor muestra errores de autenticación y de permisos con marca de tiempo.
Preguntas frecuentes sobre Samba en Linux
1. ¿Cómo se instala Samba en Ubuntu?
En Ubuntu o derivados, se instala con el comando 'sudo apt install samba' tras actualizar las listas de paquetes. Una vez instalado, el servicio 'smbd' debe estar activo; puedes verificarlo con 'systemctl status smbd'. La configuración se edita en /etc/samba/smb.conf para definir las carpetas compartidas.
2. ¿Qué es el software Samba y para qué sirve?
Samba es un conjunto de programas de código abierto que implementa el protocolo SMB/CIFS, permitiendo interoperabilidad entre sistemas Linux y Windows en una red local. Sirve para compartir archivos e impresoras, de modo que un servidor Linux pueda verse como una unidad de red en Windows. Su última versión estable es la 4.20.
3. ¿Dónde está el archivo de configuración principal de Samba y cómo se modifica?
El archivo principal es /etc/samba/smb.conf, que contiene secciones [global] para ajustes generales y otras para cada recurso compartido. Se recomienda respaldarlo antes de editar ('cp smb.conf smb.conf.bak') y usar el comando 'testparm' tras los cambios para detectar errores de sintaxis. Las modificaciones requieren reiniciar el servicio.
4. ¿Cómo configurar un servidor de archivos Samba paso a paso en Linux?
El proceso básico es: instalar el paquete samba, crear un directorio para compartir, añadir su definición en /etc/samba/smb.conf con parámetros como 'path' y 'writable', y finalmente reiniciar el servicio. Para controlar el acceso, se crean usuarios con 'smbpasswd -a usuario', que establece una contraseña específica para la red.
5. ¿Cómo hacer que un servidor Samba sea visible y accesible desde Windows?
En el archivo /etc/samba/smb.conf, la sección [global] debe incluir 'workgroup = GRUPO_TRABAJO' (o el nombre de tu grupo) y 'server role = standalone server'. Desde el Explorador de Archivos de Windows, se accede escribiendo '\IP_DEL_SERVIDOR' en la barra de direcciones. La autenticación usa el usuario y contraseña creados con 'smbpasswd'.
6. ¿Qué es un servidor de archivos Samba y cómo funciona?
Es un sistema que utiliza el software Samba para almacenar y distribuir archivos a través de una red local usando el protocolo SMB. Funciona escuchando las peticiones de los clientes en los puertos TCP 445 y UDP 137-139, y sirviendo los recursos definidos en su configuración. Permite definir permisos por usuario, grupo y nivel de acceso (solo lectura o lectura/escritura).
7. ¿Cómo se instala Samba en Arch Linux?
En Arch Linux o Manjaro, el paquete se instala con el comando 'sudo pacman -S samba'. Tras la instalación, se habilita e inicia el servicio 'smb.service' con systemctl para que Samba funcione. El archivo de configuración a editar se encuentra en /etc/samba/smb.conf, igual que en otras distribuciones.
8. ¿Cuál es la página oficial del proyecto Samba?
La página oficial del proyecto es samba.org, desde donde se descargan los paquetes fuente y se accede a la documentación técnica completa. El código fuente también está disponible en el repositorio Git oficial (git.samba.org). La documentación oficial incluye manuales detallados para la configuración avanzada.
Fuentes
- LinuxconfigHow to Set Up Samba File Sharing on Ubuntu 26.04 – LinuxConfigconsultado el 23/09/2026
- ArchlinuxSamba – ArchWikiconsultado el 23/09/2026
- TenableRHEL 9 : samba (RHSA-2026:28053) | Tenable®consultado el 23/09/2026
- SambaxpsambaXP 2027 – 26th International User and Developer Conferenceconsultado el 23/09/2026
- DevSamba on Linux – File Sharing for Mixed Environmentsconsultado el 23/09/2026
