Ubuntu 20.04 Server / Samba / Instalar y crear una carpeta compartida

Instala Samba en Ubuntu 20.04 Server y configura usuarios, recurso compartido y permisos para leer y escribir desde el Explorador de Windows. El ejemplo usa un servidor independiente reservado a usuarios Samba autenticados de un grupo dedicado, en lugar de invitados sin contraseña.

Comprobar el alcance e instalar Samba

Samba comparte archivos Linux con Windows mediante SMB (Server Message Block). Aquí se crea un recurso con cuentas locales, no un controlador ni miembro de dominio Active Directory. No sobrescribas el [global] de un dominio existente con este ejemplo.

Necesitas sudo, espacio y acceso desde Windows a la IP privada o al nombre correctamente resuelto del servidor. El ejemplo usa 192.168.10.20 y la red autorizada 192.168.10.0/24; adáptalos. El soporte estándar de Ubuntu 20.04 terminó en 2025: comprueba el mantenimiento en la información de Canonical sobre Ubuntu 20.04.

Instala los paquetes y comprueba la versión. smbclient es el cliente de pruebas. Los pasos básicos están en la guía Ubuntu del servidor de archivos Samba.

sudo apt update
sudo apt install samba smbclient
smbd --version
systemctl status smbd.service

En servidores existentes, revisa recursos y usuarios antes de copiar /etc/samba/smb.conf. Si la copia ya existe, usa otro nombre. El ejemplo presupone una carpeta nueva vacía, sin cambiar recursivamente propiedad o permisos de datos existentes.

sudo cp -a /etc/samba/smb.conf /etc/samba/smb.conf.before-team-share
sudo testparm -s

Crear usuario, grupo y directorio

  1. Comprueba si existen smbuser y smbteam. Si existen, revisa su finalidad y miembros antes de reutilizarlos, o cambia los nombres y todas las referencias.
getent passwd smbuser
getent group smbteam
  1. Si ambos faltan, crea el grupo y la cuenta dedicada y registra una contraseña Samba. La solicitada por el último comando se usa desde Windows.
sudo groupadd smbteam
sudo useradd -M -s /usr/sbin/nologin -G smbteam smbuser
sudo smbpasswd -a smbuser

La cuenta de archivos no crea directorio personal ni shell de acceso interactivo. Las contraseñas Linux de passwd y las credenciales Samba de smbpasswd son distintas. Para una cuenta existente, no la recrees: añádela mediante sudo usermod -aG smbteam USERNAME y registra ese nombre en Samba. Consulta el manual smbpasswd de Ubuntu 20.04.

  1. Crea la nueva carpeta. El comando establece propietario, grupo y modo; si hay datos en esa ruta, revisa los permisos antes de aplicarlo.
sudo install -d -o root -g smbteam -m 2770 /srv/samba/team
ls -ld /srv/samba/team
id smbuser

2770 da lectura, escritura y acceso al directorio al propietario y grupo, excluyendo a otros. El 2 inicial es setgid para heredar el grupo. Comprueba el grupo smbteam y la pertenencia de smbuser. Linux y Samba deben permitir el acceso; no lo soluciones con chmod 777.

Configurar un recurso autenticado

Abre con sudoedit /etc/samba/smb.conf y añade la sección conservando lo existente. Si ya hay [Team], revísala en lugar de duplicarla. El nombre Team es distinto de la ruta en disco.

[Team]
    path = /srv/samba/team
    browseable = yes
    read only = no
    guest ok = no
    valid users = @smbteam
    force group = smbteam
    create mask = 0660
    force create mode = 0660
    directory mask = 2770
    force directory mode = 2770

guest ok = no impide invitados; valid users = @smbteam permite miembros autenticados del grupo. read only = no habilita escritura en Samba sin saltarse Linux. force group establece el grupo de las operaciones.

Las máscaras limitan permisos de objetos nuevos y los modos forzados añaden bits para colaborar. El ejemplo busca 0660 para archivos y 2770 para directorios, sin modificar los existentes. Otras ACL (Access Control Lists, listas de control de acceso) o módulos exigen revisión propia. Consulta el manual smb.conf de Ubuntu 20.04.

Validar, aplicar y comprobar el cortafuegos

  1. Comprueba la configuración y corrige errores antes de aplicarla. Un testparm correcto indica que puede cargarse, no garantiza autenticación ni operaciones reales.
sudo testparm -s

Compara [Team], ruta y restricciones en la salida. El manual testparm también exige comprobar el funcionamiento. Reiniciar puede cortar recursos existentes: identifica usuarios y programa mantenimiento.

  1. Tras validar, aplica el servicio y comprueba ejecución e inicio automático.
sudo systemctl enable --now smbd.service
sudo systemctl restart smbd.service
systemctl is-active smbd.service
systemctl is-enabled smbd.service
sudo ss -ltnp | grep ':445'
  1. Si el cortafuegos está activo, permite TCP 445 solo desde la red interna necesaria. Sustituye el rango, define el alcance y revisa conflictos con reglas existentes.
sudo ufw status verbose
sudo ufw allow from 192.168.10.0/24 to any port 445 proto tcp

Añadir una regla no activa UFW deshabilitado. No ejecutes ufw enable sin revisar la administración remota. Comprueba también router y nube, sin reenviar SMB directamente desde Internet. El acceso por dirección no exige abrir todos los puertos antiguos de descubrimiento NetBIOS. Sintaxis en el manual UFW.

Prueba autenticación y listado en el servidor. Introduce la contraseña en la solicitud, no en el comando. Comprueba Team y su contenido y prueba Windows por separado. Consulta el manual smbclient.

smbclient -L 127.0.0.1 -U smbuser
smbclient //127.0.0.1/Team -U smbuser -c 'ls'

Acceder desde Windows y probar archivos

  1. Abre el Explorador e introduce la ruta en la barra de direcciones. Sustituye 192.168.10.20. El acceso directo puede funcionar aunque el servidor no aparezca automáticamente en Red.
\\192.168.10.20\Team
  1. Introduce smbuser y la contraseña de smbpasswd -a, no tu cuenta Windows ni PIN. Si se selecciona otra cuenta, elige usar otra e indica el usuario Samba del servidor.
  2. Crea carpeta y archivo de prueba, modifica el contenido y vuelve a abrirlo. Borra el archivo de prueba y comprueba que otro usuario autorizado pueda modificar los archivos necesarios. No uses datos existentes importantes.

Para más usuarios, prepara cuentas Linux y credenciales Samba individuales y añádelos a smbteam. Prefiere cuentas personales a una contraseña común. Después de cambiar grupos o permisos, cierra conexiones y prueba una sesión SMB nueva.

Para uso frecuente, elige Este equipo → Conectar a unidad de red, una letra y \\192.168.10.20\Team como carpeta. Usa otras credenciales si hace falta. Consulta los menús por versión en la guía Microsoft de unidades de red.

Las restricciones de invitados o firma SMB de Windows pueden rechazar recursos anónimos antiguos. El ejemplo usa autenticación, sin instalar SMB1, habilitar invitados inseguros ni desactivar firma como solución. Si la organización restringe NTLM, adapta a las políticas de dominio y servidor. Consulta versión y edición en la documentación Microsoft de firma SMB.

Diagnosticar acceso y retirar el recurso

Prueba TCP 445 desde PowerShell. TcpTestSucceeded igual a True no valida credenciales ni permisos; con False, revisa dirección, rutas, cortafuegos y servicio. Opciones en la documentación Test-NetConnection de Microsoft.

Test-NetConnection -ComputerName 192.168.10.20 -Port 445

Si se rechaza la contraseña, revisa registro Samba, nombre y grupo. Si entra pero no escribe, usa namei -l /srv/samba/team, ls -ld /srv/samba/team e id smbuser para revisar acceso a rutas y grupo, además de solo lectura en Samba. Consulta sudo journalctl -u smbd.service -n 50 --no-pager y /var/log/samba/.

Si Windows conserva credenciales antiguas, examina net use. Cierra archivos, desconecta solo el recurso afectado como abajo y vuelve a entrar. Revisa otros recursos del mismo servidor y sus entradas en el Administrador de credenciales. No elimines en bloque unidades ajenas.

net use \\192.168.10.20\Team /delete

Para detener el recurso, elimina o revierte solo [Team] en smb.conf, valida con testparm -s y reinicia smbd.service durante mantenimiento. Retira solo la regla UFW correspondiente si ya no hace falta. Comprueba conexiones restantes y conserva datos y cuentas Linux por separado.

sudo ufw delete allow from 192.168.10.0/24 to any port 445 proto tcp

Antes de restaurar todo el archivo, compara cambios de otros recursos desde la copia. Para deshabilitar solo Samba usa sudo smbpasswd -d smbuser, sin asumir que terminan las sesiones de inmediato. Verifica por separado el rechazo de nuevas conexiones y las sesiones restantes.