
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
- Finder → Ir → Conectar al servidor… (
Cmd+K
) - Introducir dirección:
smb://IP_DEL_SERVIDOR/Compartida
- Autenticar con usuario y contraseña Samba.
- 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 gruposambausers
tenga acceso colaborativo. - El usuario administrador debe configurarse manualmente para mantener SSH y sudo intactos.