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
- Comprueba si existen
smbuserysmbteam. Si existen, revisa su finalidad y miembros antes de reutilizarlos, o cambia los nombres y todas las referencias.
getent passwd smbuser
getent group smbteam
- 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.
- 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
- Comprueba la configuración y corrige errores antes de aplicarla. Un
testparmcorrecto 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.
- 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'
- 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
- 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
- Introduce
smbusery la contraseña desmbpasswd -a, no tu cuenta Windows ni PIN. Si se selecciona otra cuenta, elige usar otra e indica el usuario Samba del servidor. - 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.



