Samba permite compartir directorios mediante el protocolo SMB. En Linux, el servicio se configura en smb.conf; un cliente Linux puede acceder a un recurso compartido usando CIFS y mount.cifs. Para que el acceso funcione, deben coincidir la configuración del recurso, la autenticación de Samba y los permisos del sistema de archivos [1][2].
Instalar los paquetes
En Debian o Ubuntu, instala el servidor Samba en el equipo que publicará la carpeta:
sudo apt install samba
En el cliente Linux que montará el recurso, instala las utilidades CIFS:
sudo apt install cifs-utils
Preparar el directorio y la cuenta
Crea un grupo dedicado y añade únicamente las cuentas que deban acceder. En este ejemplo, smbuser es el nombre ilustrativo de una cuenta que ya existe en el sistema; sustitúyelo por la cuenta que hayas elegido:
sudo groupadd --system smbusers
sudo usermod -aG smbusers smbuser
Crea un directorio dedicado al recurso compartido. Evita publicar rutas amplias como /home o la raíz del sistema:
sudo install -d -o root -g smbusers -m 2770 /srv/samba/shared
Ajusta propietario, grupo y permisos según tu política local; los permisos Unix y las reglas de Samba se aplican conjuntamente [1]. Añade la cuenta a la base de contraseñas de Samba:
sudo smbpasswd -a smbuser
El comando solicita la contraseña de forma interactiva; no la escribas como argumento en la línea de comandos.
Configurar el recurso compartido
Edita /etc/samba/smb.conf y añade una sección como esta:
[shared]
path = /srv/samba/shared
browseable = yes
read only = no
valid users = @smbusers
create mask = 0660
directory mask = 2770
valid users limita quién puede conectarse al recurso. read only = no permite escritura a nivel de Samba, pero la cuenta también necesita permisos Unix sobre la ruta. Las máscaras de creación limitan los permisos que reciben los nuevos archivos y directorios [1].
Valida la configuración antes de aplicarla:
sudo testparm
Si no hay errores, reinicia el servicio para cargar los cambios:
sudo systemctl restart smbd
El nombre del servicio puede variar según la distribución; consulta su documentación si smbd no existe.
Montar el recurso desde un cliente Linux
Crea un punto de montaje local:
sudo mkdir -p /mnt/shared
Para no dejar la contraseña en el historial del shell ni visible en la lista de procesos, guárdala en un fichero de credenciales protegido. Créalo como root con permisos restrictivos y edítalo:
sudo install -m 600 /dev/null /etc/samba/credentials-shared
sudoedit /etc/samba/credentials-shared
Contenido del fichero:
username=<SMB_USER>
password=<SMB_PASSWORD>
Monta el recurso indicando el servidor y el nombre entre corchetes de la sección de smb.conf:
sudo mount -t cifs //servidor/shared /mnt/shared \
-o credentials=/etc/samba/credentials-shared
mount.cifs admite un fichero de credenciales con campos username y password; proteger sus permisos evita que otros usuarios locales puedan leerlos [2]. Si cliente y servidor no negocian una versión SMB compatible, consulta man mount.cifs y establece vers= solo cuando sepas qué versión admite el servidor.
Comprobar el acceso y desmontar
Comprueba que el recurso aparece montado y que la cuenta puede realizar las operaciones previstas:
findmnt /mnt/shared
Prueba lectura y escritura solo con archivos de prueba. Para desmontar el recurso:
sudo umount /mnt/shared
Si la conexión falla, revisa la resolución del nombre del servidor, el acceso a la red y al firewall, el nombre exacto del recurso, la contraseña Samba, la pertenencia al grupo y los permisos Unix del directorio.
Fuentes consultadas
- Documentación oficial de Samba: parámetros de
smb.conf - Manual de
mount.cifs: montaje y fichero de credenciales