Tutoriel Linux

Samba en Linux: compartir una carpeta sin abrir todo el equipo.

Débutant7 min de lecture
À retenirLinux n'est pas réservé aux experts. Le bon point de départ : une distribution accessible, une sauvegarde propre et quelques commandes comprises.

Instalar Samba en Linux parece sencillo al principio: se instala el paquete, se crea un recurso compartido y se prueba desde otra máquina. El problema es que muchas guías terminan con una carpeta demasiado accesible, permisos de Linux inconsistentes o un recurso compartido que solo funciona porque todos tienen acceso de escritura completo.

Aquí estoy usando un método deliberadamente limitado: una carpeta dedicada, un grupo de Linux, un usuario de Samba, una configuración legible y pruebas antes de abrir el recurso compartido a la red. Es menos espectacular que un chmod 777, pero también es la forma de evitar convertir tu servidor en un repositorio público.

Tux, un administrador de Linux, protege una carpeta compartida de Samba en un servidor.
Samba permite publicar una carpeta de red, siempre que se configuren los permisos de Linux y el acceso SMB.

Antes de instalar Samba, elige qué quieres compartir.

Samba se utiliza para compartir recursos SMB desde Linux, normalmente con máquinas Windows, macOS o Linux. Puede usarse en un servidor pequeño, un NAS doméstico, una máquina virtual o un ordenador de escritorio que necesite compartir una carpeta específica.

La primera decisión importante no es el comando de instalación, sino el alcance del uso compartido. Te recomiendo no compartir directamente. /hogar, / o una carpeta que ya contiene demasiados archivos. Crea un directorio específico con un propósito claro.

sudo mkdir -p /srv/partages/equipe

Si su objetivo es configurar un verdadero almacenamiento en red, la guía sobre Linux para un NAS doméstico Este punto está bien tratado. Samba puede ser un componente básico y eficaz, pero no sustituye la cuidadosa consideración de los discos, las copias de seguridad y los permisos.

Instale los paquetes Samba

En Debian o Ubuntu, instale Samba con los paquetes estándar.

sudo apt update
sudo apto instalar samba smbclient

En Fedora, el servicio se puede llamar alguien en lugar de smbd dependiendo de la distribución y los paquetes instalados.

sudo dnf install samba samba-client

En Arch Linux, instale el paquete samba.

sudo pacman -S samba

Antes de modificar la configuración, compruebe el estado del servicio. Esta es también una buena manera de verificar el nombre que utiliza su distribución.

systemctl status smbd --no-pager
systemctl status nmbd --no-pager

Si smbd no existe en su sistema, pruebe alguienNo copie un comando de reinicio sin verificar el servicio en sí, especialmente en un servidor remoto.

Crea un grupo y define los permisos de Linux.

Samba no corrige los permisos de Linux configurados incorrectamente. Si la cuenta del sistema no puede leer ni escribir en la carpeta, el recurso compartido no funcionará correctamente. Prefiero empezar con un grupo dedicado.

sudo groupadd partage-samba
sudo chgrp partage-samba /srv/partages/equipe
sudo chmod 2770 /srv/partages/equipe

EL dos En dos mil setecientos setenta Habilita el bit setgid en la carpeta. Los nuevos archivos creados dentro de ella conservarán el grupo del directorio. Esto es útil para compartir archivos en equipo, ya que evita rápidamente que se creen archivos con el grupo incorrecto.

A continuación, agregue el usuario de Linux que necesita acceso al recurso compartido. En este ejemplo, estoy usando natánAdapta el nombre.

sudo usermod -aG share-samba nathan
identificación nathan

Si acaba de agregar al usuario al grupo, es posible que deba volver a conectarse para que se reconozca su pertenencia en una sesión interactiva. En el caso de Samba, la cuenta de Samba, que se crea inmediatamente después, sigue siendo un elemento importante.

Agregar una contraseña de Samba para el usuario

Una cuenta de Linux no siempre es suficiente. Samba mantiene su propia base de datos de contraseñas para la autenticación SMB. El usuario debe existir en el sistema Linux y luego agregarse en Samba.

sudo smbpasswd -a nathan
sudo smbpasswd -e nathan

Evite reutilizar una contraseña débil con el pretexto de que el recurso compartido permanece en la red local. Un recurso compartido SMB suele ser visible para más equipos de lo que imagina, especialmente en una red de oficina o en un router doméstico con mucho tráfico.

Para volver a ingresar usuarios conocidos de Samba, puede usar:

sudo pdbedit -L

Declara una participación mínima en smb.conf

Antes de modificar /etc/samba/smb.confHaz una copia de seguridad. Un solo error de sintaxis es suficiente para interrumpir el servicio.

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak-$(date +%F-%H%M)
sudo nano /etc/samba/smb.conf

Agregue un bloque simple al final del archivo.

   ruta = /srv/partages/equipe
   navegable = sí
   solo lectura = no
   usuarios válidos = @partage-samba
   grupo de fuerza = partage-samba
   crear máscara = 0660
   máscara de directorio = 2770

Este intercambio permite a los miembros del grupo compartir-sambaNo proporciona acceso de invitado ni permite que todos lean la carpeta. Eso es lo mínimo indispensable para un espacio de trabajo compartido.

las opciones de smb.conf son numerosos. Para obtener más información, consulte la documentación de smb.conf, contraseña smb Y parm de prueba La referencia sigue siendo útil. En tu publicación inicial, te aconsejo sobre todo que sea legible.

Pruebe la configuración antes de reiniciar el servicio.

No reinicies Samba a ciegas. Inícialo primero. parm de pruebaEl comando comprueba la sintaxis y muestra la configuración que entiende Samba.

testparm -s

Si el resultado indica un error, corríjalo antes de continuar. Si la configuración es correcta, recargue o reinicie el servicio.

sudo systemctl restart smbd
sudo systemctl status smbd --no-pager

En algunas distribuciones, necesitarás usar alguien.

sudo systemctl restart smb
sudo systemctl status smb --no-pager

Si el servicio no se reinicia, revise los registros antes de cambiar tres opciones al azar.

journalctl -u smbd -b --no-pager
tail -n 80 /var/log/samba/log.smbd

la guía para journalctl en el último inicio Puede resultarle útil si desea aislar los errores del servicio en lugar de leer todo el registro del sistema.

Abra el firewall solo si es necesario que el recurso compartido salga del equipo.

Si solo estás realizando pruebas localmente, no es necesario abrir el cortafuegos de inmediato. Primero, comprueba que Samba esté funcionando.

sudoss-ltnp | grep -E ':139|:445'

Con UFW, la regla más sencilla es:

sudo ufw permitir Samba
sudo ufw status verbose

Pero no lo aplique automáticamente a una máquina expuesta. SMB no está diseñado para estar abierto a Internet. En un VPS o servidor público, utilice una VPN, un túnel privado o un servidor dedicado. Si necesita comprobar los puertos abiertos, consulte la guía sobre ss y netstat en Linux.

Pruebe a compartir archivos desde Linux antes de analizar los problemas del lado del cliente.

Antes de acceder al equipo cliente, realice primero una prueba desde el servidor. Esto permitirá diferenciar los problemas de Samba de los problemas de red o del cortafuegos.

smbclient -L localhost -U nathan
smbclient //localhost/team -U nathan -c 'ls'

Si esta prueba falla localmente, no pierda tiempo en Windows o macOS. Verifique el usuario de Samba, el grupo de Linux, la ruta de acceso compartida y los registros.

Desde otra máquina Linux, también puedes probar el acceso utilizando la dirección IP del servidor.

smbclient -L //192.168.1.20 -U nathan
smbclient //192.168.1.20/equipe -U nathan

Reemplazar correctamente 192.168.1.20 Mediante la dirección de su servidor. Si la prueba local funciona pero la remota no, es probable que tenga un problema de red, cortafuegos o resolución de nombres.

Los errores que revisaría primero

Cuando me enfrento a un problema con un recurso compartido de Samba que no funciona, casi siempre reviso los mismos puntos:

  • El archivo existe y apunta al lugar correcto;
  • El usuario de Linux pertenece al grupo previsto;
  • El usuario se ha añadido correctamente con smbpasswd -a ;
  • testparm -s no informa de ningún error;
  • el servicio smbd O alguien está activo;
  • El puerto 445 está a la escucha y el cortafuegos no está bloqueando la red local;
  • Los registros de Samba no mencionan ninguna denegación de derechos en la ruta en sí.

Si su necesidad es solo transferir ocasionalmente algunos archivos entre Windows y Linux, un recurso compartido Samba permanente no siempre es necesario. La antigua guía sobre intercambio de archivos entre Windows y Linux Esto abre nuevas vías de exploración. Samba resulta interesante cuando es necesario mantener la disponibilidad para compartir, con derechos controlados y múltiples clientes capaces de conectarse.

Una vez que todo funcione correctamente, crea un archivo de prueba, léelo desde otra máquina y luego elimínalo. Es un procedimiento básico, pero valida todo el ciclo: autenticación, permisos de Linux, escritura en Samba, lectura remota y limpieza. Hasta que esta prueba no dé resultados positivos, no recomendaría compartir archivos con otros usuarios.

sudo apt update && sudo apt upgrade