La compartición de archivos Samba es una de las formas más prácticas de publicar carpetas de un servidor Linux para que puedan usarlas equipos Windows, Linux y otros dispositivos de la red local. Samba implementa el protocolo SMB/CIFS, el mismo protocolo que utiliza Windows para sus carpetas compartidas, por eso encaja muy bien en entornos mixtos donde no todos los clientes son Linux.
La idea principal para la compartición de archivos Samba es sencilla: en Linux se crea una carpeta, se ajustan sus permisos, se declara esa carpeta como recurso compartido en la configuración de Samba y se decide qué usuarios pueden acceder. A partir de ahí, un equipo Windows puede abrirla desde el explorador de archivos y un cliente Linux puede montarla con herramientas SMB.
Aunque se parezca a otras soluciones de compartición, como NFS, Samba no cumple exactamente el mismo papel. NFS suele ser muy cómodo entre sistemas Linux/Unix. Samba, en cambio, brilla cuando hay clientes Windows o cuando se quiere una experiencia parecida a unidades de red y carpetas compartidas tradicionales.
👉 Y recuerda, si quieres aprender más de Linux, pincha en este curso de Linux gratis
👉 También te dejo por aquí una guía de comandos Linux por categorías
Cuándo usar Samba
La compartición de archivos Samba tiene sentido cuando necesitas compartir archivos en una red local con clientes Windows, cuando quieres que usuarios no técnicos accedan desde el explorador de archivos, o cuando necesitas compatibilidad SMB con aplicaciones, impresoras, copias de seguridad o dispositivos que ya esperan este protocolo.
También es útil en pequeños servidores domésticos, oficinas, laboratorios, aulas y redes internas donde se quiere centralizar documentación, instaladores, copias de trabajo o carpetas por departamentos.
No es la mejor opción para todo. Si todos los equipos son Linux y necesitas montajes persistentes con permisos Unix muy naturales, NFS puede ser más directo. Si solo quieres copiar archivos de vez en cuando, SFTP puede bastar. Samba merece la pena cuando el recurso compartido debe comportarse como una carpeta de red compatible con SMB.
Conceptos básicos antes de configurar
Para ejecutar correctamente la compartición de archivos Samba conviene separar dos capas:
- Los permisos reales del sistema Linux.
- Los permisos y usuarios que Samba acepta para entrar al recurso.
Esto es importante porque Samba no puede escribir en una carpeta si Linux no se lo permite. Aunque en smb.conf declares que un usuario tiene acceso de escritura, el sistema de archivos sigue teniendo la última palabra.
Por eso, una configuración correcta normalmente incluye estas piezas:
- Un directorio compartido, por ejemplo /srv/samba/compartido.
- Un usuario Linux propietario o miembro de un grupo con permisos sobre ese directorio.
- Un usuario Samba activado con smbpasswd.
- Una sección en /etc/samba/smb.conf que publica el recurso.
- El servicio smbd activo y accesible desde la red.
Instalación de Samba
En Debian, Ubuntu y derivados, los paquetes habituales se instalan con:
sudo apt update
sudo apt install samba smbclient cifs-utilssamba instala el servidor que publica las carpetas. smbclient permite probar recursos SMB desde la terminal, algo muy útil para diagnosticar. cifs-utils permite montar carpetas compartidas SMB en clientes Linux.
En Fedora, Rocky Linux, AlmaLinux o similares, el nombre de los paquetes puede variar ligeramente:
sudo dnf install samba samba-client cifs-utilsDespués de instalar, conviene comprobar el estado del servicio:
systemctl status smbdEn algunas distribuciones el servicio se inicia automáticamente. En otras, puede ser necesario activarlo:
sudo systemctl enable --now smbdEl servicio smbd es el que atiende las conexiones SMB. Si no está arrancado, los clientes no podrán abrir la carpeta aunque la configuración sea correcta.
Crear el directorio compartido
Una ubicación clara para recursos compartidos es /srv/samba, porque deja separado el contenido publicado de las carpetas personales del sistema.
sudo mkdir -p /srv/samba/compartidoAhora podemos crear un grupo para controlar quién tendrá acceso:
sudo groupadd sambausersSi ya tienes un usuario Linux que debe acceder al recurso, añádelo al grupo:
sudo usermod -aG sambausers usuarioDespués ajusta propietario y permisos:
sudo chown -R root:sambausers /srv/samba/compartido
sudo chmod -R 2770 /srv/samba/compartidoEl modo 2770 tiene un detalle importante: el 2 activa el bit setgid en el directorio. Esto hace que los archivos nuevos hereden el grupo sambausers, evitando que cada usuario cree archivos con grupos diferentes y rompa la colaboración.
Con estos permisos, el propietario root y el grupo sambausers pueden trabajar en el directorio, mientras que otros usuarios locales no tienen acceso.
Crear o activar el usuario de Samba
Samba no usa automáticamente la contraseña del sistema para SMB. Un usuario puede existir en Linux, pero también debe tener contraseña Samba.
Si el usuario todavía no existe en Linux:
sudo adduser usuarioDespués se registra en Samba:
sudo smbpasswd -a usuarioY se activa:
sudo smbpasswd -e usuarioEste paso evita una confusión muy común: crear la carpeta y configurar smb.conf, pero olvidar smbpasswd. Si el usuario no está dado de alta en la base de Samba, Windows pedirá credenciales una y otra vez o devolverá acceso denegado.
Configurar /etc/samba/smb.conf
El archivo principal de configuración es:
/etc/samba/smb.confAntes de editarlo, es recomendable hacer una copia:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bakAl final del archivo se puede añadir una sección como esta:
[compartido]
path = /srv/samba/compartido
browseable = yes
read only = no
guest ok = no
valid users = @sambausers
create mask = 0660
directory mask = 2770Cada línea tiene una función concreta:
- [compartido] es el nombre del recurso tal como lo verán los clientes. En Windows se accederá como \\servidor\compartido.
- path indica la carpeta real en Linux.
- browseable = yes permite que el recurso aparezca al explorar el servidor.
- read only = no habilita escritura desde Samba, siempre que los permisos Linux también lo permitan.
- guest ok = no desactiva acceso anónimo. Es una opción más segura para la mayoría de escenarios.
- valid users = @sambausers limita el acceso a usuarios que pertenezcan al grupo Linux sambausers. La arroba indica grupo.
- create mask define permisos para archivos nuevos creados desde clientes SMB.
- directory mask define permisos para carpetas nuevas. Mantener 2770 ayuda a conservar el grupo compartido.
Verificar la configuración
Antes de reiniciar Samba, ejecuta:
testparmtestparm lee smb.conf y avisa de errores de sintaxis o parámetros problemáticos. Es mejor descubrir un fallo aquí que reiniciar el servicio y encontrarse con que el recurso no aparece.
Si todo está bien, reinicia:
sudo systemctl restart smbdY comprueba que sigue activo:
systemctl status smbdAbrir el firewall
Si el firewall está activo, Samba debe estar permitido en la red local.
En Ubuntu con UFW:
sudo ufw allow Samba
sudo ufw statusEn firewalld:
sudo firewall-cmd --permanent --add-service=samba
sudo firewall-cmd --reload
sudo firewall-cmd --list-servicesEste paso es clave porque muchos problemas de conexión no están en smb.conf, sino en el firewall. Si el servicio funciona localmente pero otros equipos no pueden conectar, el firewall es una de las primeras cosas que conviene revisar.
Acceso desde Windows
Desde Windows, abre el explorador de archivos y escribe en la barra de direcciones:
\\IP_DEL_SERVIDOR\compartidoPor ejemplo:
\\192.168.1.50\compartidoWindows pedirá usuario y contraseña. Debes introducir el usuario Samba creado con smbpasswd. Si el usuario se llama usuario, normalmente basta con escribir ese nombre. En algunos entornos puede ser útil indicar:
NOMBRE_DEL_SERVIDOR\usuarioTambién puedes mapearlo como unidad de red desde Este equipo y elegir una letra, por ejemplo Z:.
Si Windows recuerda credenciales antiguas, puede fallar aunque la contraseña actual sea correcta. En ese caso revisa el Administrador de credenciales de Windows y elimina entradas antiguas para ese servidor.
Acceso desde Linux
Desde otro equipo Linux puedes listar recursos con:
smbclient -L //IP_DEL_SERVIDOR -U usuarioPara entrar de forma interactiva:
smbclient //IP_DEL_SERVIDOR/compartido -U usuarioDentro de smbclient, comandos como ls, put, get y mkdir permiten probar lectura y escritura.
Para montar la carpeta en el sistema de archivos:
sudo mkdir -p /mnt/compartido
sudo mount -t cifs //IP_DEL_SERVIDOR/compartido /mnt/compartido -o username=usuarioEl sistema pedirá la contraseña Samba. Si necesitas un montaje persistente, se puede usar /etc/fstab, pero conviene guardar credenciales en un archivo protegido en lugar de escribir la contraseña directamente en fstab.
Ejemplo de archivo de credenciales:
sudo nano /etc/samba/credenciales-compartidoContenido:
username=usuario
password=CONTRASEÑAPermisos:
sudo chmod 600 /etc/samba/credenciales-compartidoEntrada de ejemplo en /etc/fstab:
//192.168.1.50/compartido /mnt/compartido cifs credentials=/etc/samba/credenciales-compartido,iocharset=utf8,uid=1000,gid=1000 0 0Esta configuración debe adaptarse al usuario local que vaya a usar el montaje. Los valores uid y gid controlan cómo se presentan los archivos montados en el cliente Linux.
Comprobaciones sencillas
Una verificación completa no debería limitarse a ver si el recurso aparece. Prueba lectura, escritura y permisos.
En el servidor:
ls -ld /srv/samba/compartido
getent group sambausers
pdbedit -Lls -ld confirma permisos y grupo de la carpeta. getent group muestra quién pertenece al grupo. pdbedit -L lista usuarios registrados en Samba.
Desde un cliente Linux:
smbclient //192.168.1.50/compartido -U usuarioDespués prueba:
mkdir prueba
put archivo.txt
lsDesde Windows, crea una carpeta pequeña, copia un archivo y vuelve al servidor para comprobar:
ls -l /srv/samba/compartidoSi los archivos aparecen con el grupo esperado y otros usuarios del grupo pueden trabajar con ellos, la base está bien configurada.
Errores comunes y cómo interpretarlos
Windows pide contraseña en bucle
Suele indicar usuario Samba inexistente, contraseña incorrecta o credenciales antiguas guardadas en Windows. Revisa:
sudo smbpasswd -a usuario
sudo smbpasswd -e usuario
pdbedit -LTambién elimina credenciales antiguas desde el Administrador de credenciales de Windows.
Acceso denegado al escribir
Si el usuario puede entrar pero no puede crear archivos, el problema suele estar en permisos Linux. Revisa:
ls -ld /srv/samba/compartido
id usuario
getent group sambausersEl usuario debe pertenecer al grupo correcto y la carpeta debe permitir escritura a ese grupo.
El recurso no aparece en la red
Que no aparezca al explorar la red no siempre significa que no funcione. Prueba acceso directo por IP:
\\192.168.1.50\compartidoLa exploración de red depende de descubrimiento, nombres NetBIOS, DNS local y configuración del cliente. El acceso por IP suele ser más fiable para diagnosticar.
No se puede conectar al servidor
Comprueba servicio, firewall e IP:
systemctl status smbd
ip addr
sudo ufw statusDesde otro Linux puedes probar:
smbclient -L //192.168.1.50 -U usuarioSi no conecta, el problema puede ser de red o firewall. Si conecta pero no lista el recurso, revisa smb.conf y ejecuta testparm.
La configuración no carga
Ejecuta:
testparmUn error de sintaxis en smb.conf puede impedir que Samba aplique la configuración esperada. También conviene revisar logs:
journalctl -u smbd --no-pager -n 100Recomendaciones prácticas de seguridad
Recomendaciones de seguridad para la compartición de archivos Samba. No habilites invitados salvo que sea una carpeta pública de muy bajo riesgo. guest ok = yes puede ser cómodo, pero también facilita accesos no deseados si la red no está bien controlada.
Limita cada recurso a usuarios o grupos concretos con valid users. Es mejor crear grupos por finalidad, como sambausers, contabilidad o proyectos, que conceder acceso amplio a todos los usuarios.
Evita compartir carpetas sensibles del sistema, como /, /etc, /home completo o rutas donde haya claves y configuraciones privadas. Publica directorios pensados para compartir, preferiblemente dentro de /srv/samba.
Mantén los permisos Linux coherentes. Samba no sustituye al modelo de permisos del sistema; lo complementa. Si todo se arregla con chmod 777, la configuración queda débil y difícil de auditar.
Actualiza el sistema. Samba ha tenido vulnerabilidades importantes a lo largo de los años, así que conviene instalar parches de seguridad con regularidad.
Restringe Samba a redes internas. No expongas SMB directamente a Internet. Si necesitas acceso remoto, usa VPN y accede al recurso como si estuvieras dentro de la red local.
Usa contraseñas fuertes y elimina usuarios que ya no necesiten acceso:
sudo smbpasswd -x usuarioTambién es buena práctica revisar periódicamente quién tiene permisos:
getent group sambausers
pdbedit -LEjemplo completo resumido
Este ejemplo crea un recurso privado llamado compartido, accesible para usuarios del grupo sambausers.
sudo apt update
sudo apt install samba smbclient cifs-utils
sudo groupadd sambausers
sudo adduser usuario
sudo usermod -aG sambausers usuario
sudo mkdir -p /srv/samba/compartido
sudo chown -R root:sambausers /srv/samba/compartido
sudo chmod -R 2770 /srv/samba/compartido
sudo smbpasswd -a usuario
sudo smbpasswd -e usuarioSe añade al final de /etc/samba/smb.conf:
[compartido]
path = /srv/samba/compartido
browseable = yes
read only = no
guest ok = no
valid users = @sambausers
create mask = 0660
directory mask = 2770Después:
testparm
sudo systemctl restart smbd
sudo systemctl enable smbdSi hay firewall:
sudo ufw allow SambaY desde Windows:
\\192.168.1.50\compartidoConclusión
La compartición de archivos Samba permite convertir un servidor Linux en un servidor de archivos compatible con SMB, especialmente útil para redes mixtas con Windows y Linux. La clave para que funcione bien no está solo en copiar comandos, sino en entender la relación entre el recurso declarado en smb.conf, los usuarios de Samba y los permisos reales del sistema Linux.
Una configuración sólida para compartición de archivos Samba, empieza con una carpeta dedicada, grupos bien definidos, acceso sin invitados, usuarios creados con smbpasswd, verificación con testparm y pruebas desde clientes reales. Con esa base, Samba se convierte en una solución estable y práctica para compartir archivos en una red local sin depender de herramientas improvisadas.
