Samba implementa el protocolo SMB, el mismo que usa Windows para compartir carpetas, y permite que equipos con Windows, macOS y Linux accedan a archivos guardados en un servidor Linux. En este tutorial configurarás Samba en Ubuntu 24.04 con un recurso compartido para un equipo de trabajo, usuarios con contraseña propia, permisos basados en grupos y una papelera de reciclaje, y lo montarás desde los tres sistemas operativos.

Requisitos previos

Para seguir esta guía necesitas:

  • Un servidor con Ubuntu 24.04 LTS, por ejemplo un VPS de CubePath, con espacio en disco suficiente para los archivos que vayas a compartir.
  • Un usuario no root con privilegios sudo y UFW activo con SSH permitido.
  • Una red de confianza entre los clientes y el servidor: una red privada, una VPN como WireGuard o, como mínimo, las IP fijas de los clientes.

En los ejemplos, la subred de confianza es 10.8.0.0/24 (la de una VPN WireGuard) y el servidor tiene la IP your_server_ip dentro de ella.

Paso 1: Instalar Samba

Instala el servidor Samba y el cliente smbclient, que usarás para probar la configuración desde el propio servidor:

sudo apt update
sudo apt install samba smbclient

Comprueba la versión y que el servicio principal, smbd, está en marcha:

smbd --version
systemctl status smbd --no-pager
Version 4.19.5-Ubuntu
● smbd.service - Samba SMB Daemon
     Loaded: loaded (/usr/lib/systemd/system/smbd.service; enabled; preset: enabled)
     Active: active (running) since Thu 2026-09-25 11:02:40 UTC; 20s ago

Paso 2: Crear el grupo y la carpeta compartida

Los permisos en Samba se apoyan en los permisos de Linux, así que la forma más sencilla de gestionar un recurso de equipo es un grupo de Linux. Crea el grupo equipo:

sudo groupadd equipo

Crea la carpeta compartida en /srv/samba, asígnala al grupo y dale permisos 2770:

sudo mkdir -p /srv/samba/equipo
sudo chown root:equipo /srv/samba/equipo
sudo chmod 2770 /srv/samba/equipo

El 7 del grupo le da lectura y escritura, el 0 final impide el acceso al resto de usuarios y el 2 inicial (bit setgid) hace que todo lo que se cree dentro herede el grupo equipo, de modo que los archivos de un usuario sean editables por los demás.

ls -ld /srv/samba/equipo
drwxrws--- 2 root equipo 4096 Sep 25 11:05 /srv/samba/equipo

Paso 3: Crear los usuarios de Samba

Cada usuario de Samba debe existir también como usuario de Linux, pero no necesita poder iniciar sesión por SSH. Crea el usuario ana sin contraseña de Linux y con un shell que no permite acceso interactivo, y añádelo al grupo:

sudo adduser --disabled-password --gecos "" --shell /usr/sbin/nologin ana
sudo usermod -aG equipo ana

Samba guarda sus propias contraseñas, independientes de las del sistema. Asigna una a ana:

sudo smbpasswd -a ana
New SMB password:
Retype new SMB password:
Added user ana.

Repite los tres comandos para cada persona del equipo. Para ver los usuarios registrados en Samba:

sudo pdbedit -L
ana:1001:

Paso 4: Configurar Samba

El archivo de configuración es /etc/samba/smb.conf. Haz una copia antes de editarlo:

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.orig
sudo nano /etc/samba/smb.conf

En la sección [global], que ya existe al principio del archivo, añade estas líneas justo debajo de [global]:

   server min protocol = SMB2_10
   server smb encrypt = desired
   map to guest = never
  • server min protocol = SMB2_10 rechaza SMB1, un protocolo obsoleto e inseguro.
  • server smb encrypt = desired cifra el tráfico con los clientes que lo soportan (Windows 8 y posteriores, macOS y Linux actuales).
  • map to guest = never impide el acceso como invitado con credenciales erróneas.

Al final del archivo, añade el recurso compartido:

[equipo]
   comment = Archivos del equipo
   path = /srv/samba/equipo
   browseable = yes
   read only = no
   valid users = @equipo
   force group = equipo
   create mask = 0660
   directory mask = 2770
   vfs objects = recycle
   recycle:repository = .papelera/%U
   recycle:keeptree = yes
   recycle:versions = yes
  • valid users = @equipo limita el acceso a los miembros del grupo.
  • force group, create mask y directory mask garantizan que todo lo que se crea pertenece al grupo y es editable por él, sea cual sea el cliente.
  • El módulo recycle mueve los archivos borrados a .papelera/<usuario> dentro del recurso en lugar de eliminarlos.

Valida la configuración con testparm:

testparm -s
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.

Server role: ROLE_STANDALONE
...
[equipo]
	comment = Archivos del equipo
	force group = equipo
	...

La línea Loaded services file OK. confirma que no hay errores de sintaxis. Aplica los cambios:

sudo systemctl restart smbd

Samba también instala nmbd, el servicio de nombres NetBIOS que permite descubrir el servidor en el explorador de red de Windows. En un servidor en la nube no aporta nada y puedes desactivarlo:

sudo systemctl disable --now nmbd

Paso 5: Abrir el firewall solo a la red de confianza

Samba añade un perfil de aplicación a UFW con sus puertos. Permítelo únicamente desde la subred de la VPN:

sudo ufw allow from 10.8.0.0/24 to any app Samba

Comprueba la regla:

sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Samba                      ALLOW       10.8.0.0/24

Paso 6: Probar el recurso desde el servidor

Antes de pasar a los clientes, conéctate desde el propio servidor con smbclient. Lista los recursos disponibles como ana:

smbclient -L //localhost -U ana
Password for [WORKGROUP\ana]:

	Sharename       Type      Comment
	---------       ----      -------
	print$          Disk      Printer Drivers
	equipo          Disk      Archivos del equipo
	IPC$            IPC       IPC Service (my-server server (Samba, Ubuntu))

Sube un archivo de prueba al recurso:

echo "prueba" > /tmp/prueba.txt
smbclient //localhost/equipo -U ana -c 'put /tmp/prueba.txt prueba.txt; ls'
putting file /tmp/prueba.txt as \prueba.txt (0.5 kb/s) (average 0.5 kb/s)
  .                                   D        0  Thu Sep 25 11:20:04 2026
  ..                                  D        0  Thu Sep 25 11:05:12 2026
  prueba.txt                          A        7  Thu Sep 25 11:20:04 2026

Comprueba en el disco que el archivo pertenece al grupo equipo:

ls -l /srv/samba/equipo
-rw-rw---- 1 ana equipo 7 Sep 25 11:20 prueba.txt

Paso 7: Conectar desde los clientes

Windows

En el Explorador de archivos, escribe \\your_server_ip\equipo en la barra de direcciones e introduce el usuario y la contraseña de Samba. Para asignarle una letra de unidad desde PowerShell o CMD:

net use Z: \\your_server_ip\equipo /user:ana /persistent:yes

macOS

En Finder, abre Ir > Conectarse al servidor (Cmd+K), escribe smb://your_server_ip/equipo e introduce las credenciales.

Linux

Instala las utilidades CIFS y crea un punto de montaje:

sudo apt install cifs-utils
sudo mkdir -p /mnt/equipo

Guarda las credenciales en un archivo que solo root pueda leer, en lugar de escribirlas en la línea de comandos:

sudo nano /root/.smb-equipo
username=ana
password=your_samba_password
sudo chmod 600 /root/.smb-equipo

Monta el recurso. Las opciones uid y gid hacen que los archivos aparezcan como propiedad de tu usuario local:

sudo mount -t cifs //your_server_ip/equipo /mnt/equipo -o credentials=/root/.smb-equipo,uid=$(id -u),gid=$(id -g)
ls /mnt/equipo
prueba.txt

Para montarlo en cada arranque, añade esta línea a /etc/fstab del cliente, sustituyendo 1000 por tu UID y GID. La opción _netdev espera a que la red esté disponible:

//your_server_ip/equipo  /mnt/equipo  cifs  credentials=/root/.smb-equipo,uid=1000,gid=1000,_netdev  0  0

Prueba la entrada sin reiniciar:

sudo umount /mnt/equipo
sudo mount -a

Solución de problemas

NT_STATUS_LOGON_FAILURE al conectar. El usuario no existe en Samba o la contraseña es incorrecta. Comprueba que aparece en sudo pdbedit -L y vuelve a fijarla con sudo smbpasswd -a ana.

NT_STATUS_ACCESS_DENIED al listar o escribir. El usuario no pertenece al grupo o los permisos de la carpeta no son los del paso 2. Verifica con id ana y ls -ld /srv/samba/equipo. Tras añadir un usuario a un grupo, los clientes deben desconectarse y volver a conectar.

El cliente no llega al servidor (tiempo de espera agotado). Comprueba que el cliente está en la subred permitida en UFW y que Samba escucha en el puerto 445:

sudo ss -ltnp | grep 445

Windows no permite el acceso y menciona el acceso de invitados o SMB1. Las versiones actuales de Windows rechazan SMB1 y el acceso sin contraseña, justo lo que esta configuración evita. Conéctate siempre con un usuario de Samba y revisa los mensajes del servidor en sudo journalctl -u smbd y en /var/log/samba/.

Conclusión

Tu servidor Ubuntu 24.04 comparte ahora una carpeta de equipo por SMB con usuarios propios, permisos por grupo, cifrado con los clientes compatibles, papelera de reciclaje y acceso limitado a la red de confianza. Para crear más recursos, repite el patrón: un grupo de Linux, una carpeta con permisos 2770 y una sección nueva en smb.conf.

Como siguientes pasos, puedes programar copias de seguridad de /srv/samba con restic o rsync, aplicar cuotas de disco por usuario o activar [homes] en smb.conf para que cada usuario tenga su carpeta privada.