Cómo configurar un servidor Samba en Debian

Cómo configurar un servidor Samba en Debian

Aprende a configurar Samba en Debian para compartir archivos en red con usuarios Linux, macOS y Windows.

NOTA: Probado en Debian 13

Este documento describe cómo configurar un servidor de archivos Samba en Debian 12 con:

  • Una carpeta compartida general para todos los usuarios.
  • Carpetas privadas para cada usuario.
  • Acceso mediante navegador de archivos (Linux, macOS, Windows).
  • Acceso por SSH para todos los usuarios.
  • Un usuario administrador con permisos sudo.

1. Instalación de Samba

sudo apt update
sudo apt install samba cifs-utils

2. Crear carpetas compartidas y permisos

Asegúrate de que el grupo sambausers exista:

sudo groupadd sambausers
# Carpeta Compartida
sudo mkdir -p /srv/samba/shared
sudo chmod 2770 /srv/samba/shared
sudo chown root:sambausers /srv/samba/shared

# Carpeta principal de usuarios
sudo mkdir -p /srv/samba/users
sudo chmod 755 /srv/samba/users

3. Crear usuarios del sistema y de Samba

a. Crear usuario normal

sudo useradd -m -s /bin/bash -G sambausers usuario1

b. Crear carpeta privada para Samba

sudo mkdir -p /srv/samba/users/usuario1
sudo chown usuario1:sambausers /srv/samba/users/usuario1
sudo chmod 700 /srv/samba/users/usuario1

c. Asignar contraseña del sistema

sudo passwd usuario1

d. Asignar contraseña de Samba

sudo smbpasswd -a usuario1

Repite estos pasos para cada usuario normal.

e. Usuario administrador

El usuario administrador (por ejemplo admin) no debe crearse con el script. Configúralo manualmente si quieres que tenga acceso a Samba:

# Crear carpeta privada si se desea
sudo mkdir -p /srv/samba/users/admin
sudo chown admin:sambausers /srv/samba/users/admin
sudo chmod 700 /srv/samba/users/admin

# Agregar al grupo de Samba
sudo usermod -aG sambausers admin

# Activar cuenta Samba
sudo smbpasswd -a admin

Esto mantiene intactas sus configuraciones de SSH y sudo.

4. Configuración de Samba (/etc/samba/smb.conf)

[global]
   workgroup = WORKGROUP
   server string = %h Samba Server
   netbios name = %h
   security = user
   smb encrypt = desired
   allow insecure wide links = no

[Compartida]
   path = /srv/samba/shared
   browseable = yes
   writable = yes
   guest ok = no
   create mask = 0664
   directory mask = 2770
   valid users = @sambausers
   force group = sambausers
   force create mode = 0664
   force directory mode = 2770

[MiCarpeta]
   path = /srv/samba/users/%U
   browseable = yes
   writable = yes
   guest ok = no
   create mask = 0600
   directory mask = 0700
   valid users = %U

5. Reiniciar el servicio de Samba

sudo systemctl restart smbd

6. Acceso de los clientes

6.1 Comportamiento general

Los usuarios verán dos carpetas principales:

  • Compartida: recurso común para todos los usuarios del grupo sambausers.
  • MiCarpeta: carpeta privada accesible solo por el usuario autenticado.

6.2 Conexión desde Linux

GNOME (Nautilus):

  • Abrir Nautilus y poner en la barra de direcciones:
smb://IP_DEL_SERVIDOR
  • Funciona completamente: renombrar, copiar, borrar sin problemas.

KDE (Dolphin):

  • KIO-Samba tiene limitaciones en escritura y renombrado.
  • Recomendación: montar con CIFS para funcionalidad completa:
sudo mount -t cifs //IP_DEL_SERVIDOR/Compartida ~/Compartida \
  -o username=usuario,rw,vers=3.0,sec=ntlmssp,iocharset=utf8,uid=$(id -u),gid=$(id -g)
  • Montaje automático al inicio usando fstab:
//IP_DEL_SERVIDOR/Compartida /home/usuario/Compartida cifs credentials=/home/usuario/.smbcredentials,iocharset=utf8,uid=1000,gid=1000,_netdev 0 0

_netdev asegura que el sistema solo intente montar la unidad cuando la red esté disponible.

6.3 Conexión desde macOS

  1. Finder → Ir → Conectar al servidor… (Cmd+K)
  2. Introducir dirección:
smb://IP_DEL_SERVIDOR/Compartida
  1. Autenticar con usuario y contraseña Samba.
  2. Se montará como volumen en Finder.

6.4 Conexión desde Windows

  • Abrir Explorador de archivos → \\IP_DEL_SERVIDOR
  • Autenticar con usuario y contraseña Samba.

6.5 Sincronización y rsync

Para sincronizar archivos y mantener permisos correctos:

# Carpeta privada
rsync -avz ./carpeta_local/ usuario@IP_DEL_SERVIDOR:/srv/samba/users/usuario/carpeta_local/

# Carpeta compartida con permisos de grupo
rsync -avz --chown=usuario:sambausers ./carpeta_local/ usuario@IP_DEL_SERVIDOR:/srv/samba/shared/carpeta_local/

7. Acceso SSH

Cada usuario puede acceder a su carpeta privada vía SSH:

ssh usuario@IP_DEL_SERVIDOR
cd /srv/samba/users/usuario
  • Permite navegar, copiar y gestionar archivos directamente.
  • Funciona junto con rsync para sincronización eficiente.

8. Script opcional para crear usuarios normales

#!/bin/bash

if [ -z "$1" ]; then
    echo "Uso: $0 nombre_usuario"
    exit 1
fi

USUARIO="$1"
GRUPO="sambausers"
SAMBA_DIR="/srv/samba/users/$USUARIO"

sudo useradd -m -s /bin/bash -G "$GRUPO" "$USUARIO"
echo "Establece la contraseña del sistema para $USUARIO:"
sudo passwd "$USUARIO"

sudo mkdir -p "$SAMBA_DIR"
sudo chown "$USUARIO:$GRUPO" "$SAMBA_DIR"
sudo chmod 700 "$SAMBA_DIR"

echo "Establece la contraseña de Samba para $USUARIO:"
sudo smbpasswd -a "$USUARIO"

echo "✅ Usuario $USUARIO creado con acceso SSH, rsync y Samba."
  • Guardar como crear_usuario_samba.sh y hacer ejecutable:
chmod +x crear_usuario_samba.sh
sudo mv crear_usuario_samba.sh /usr/local/bin/
sudo chown root:sudo /usr/local/bin/crear_usuario_samba.sh
sudo chmod 750 /usr/local/bin/crear_usuario_samba.sh

9. Verificación

  • Ver usuarios del sistema:
getent passwd usuario
awk -F: '$3 >= 1000 && $1 != "nobody" { print $1 }' /etc/passwd
  • Ver usuarios Samba:
sudo pdbedit -L
  • Ver carpeta y permisos:
ls -ld /srv/samba/users/usuario

10. Conclusión y recomendaciones

  • GNOME: conexión SMB simple, sin preocuparse por UID/GID o CIFS.
  • KDE: requiere montaje CIFS para funcionalidades completas.
  • Mantener 2770 en compartida asegura que solo el grupo sambausers tenga acceso colaborativo.
  • El usuario administrador debe configurarse manualmente para mantener SSH y sudo intactos.

Fuentes


Gracias

¡Gracias a todos! Sus aportes lo hacen posible. Si desea ayudar y apoyarnos a crear mejor contenido, puede hacer su donativo a través de paypal:

Algunos derechos reservados

Compartir en Redes sociales

A continuación

¿Tu servidor portátil/AIO quema la pantalla innecesariamente? Apágala automáticamente

Solución con systemd + kernel framebuffer para apagar pantallas en servidores AIO/portátiles y evitar burn-in.

Instalar Reason 5 en Linux y hacerlo funcionar con Wine

Guía probada para que Reason 5 funcione en Linux con WineHQ 9.0 Stable, evitando fallos comunes en Wayland y KDE Plasma

Cómo extraer archivos de una ISO Live Linux usando `unsquashfs`

Extrae archivos de una ISO Live Linux con unsquashfs y accede a su sistema sin ejecutarla.

Relacionado


¿Músico?

Si desea conocer sobre mi actividad musical lo invito a que visite la página principal. Allí encontrará todo sobre mi música.