Cómo instalar Samba en Debian 9 Stretch

Cómo instalar Samba en Debian 9 Stretch

Dedicamos esta entrada a ver cómo instalar Samba en Debian 9 Stretch paso a paso, un buena forma de compartir recursos entre máquinas con el mismo o distintos sistemas operativos. Esto es especialmente útil cuando queremos compartir archivos entre sistemas Windows y Linux en una red local. Al final de este tutorial habrás instalado el servicio Samba en tu sistema Debian 9, pudiendo acceder desde otras máquinas a tus archivos personales y sabrás crear y acceder a nuevos recursos compartidos.

Antes de instalar Samba en Debian 9

Para seguir esta guía de instalación de Samba en Debian 9 Stretch necesitaremos cumplir estos pocos requisitos:

  • Un sistema Debian 9 Stretch actualizado.
  • Acceso a través de terminal como root, o mejor como usuario con permisos de sudo.
  • Conexión a Internet para descargar los paquetes necesarios, en el caso de no tenerlos presentes en el sistema.

Si estás leyendo esta guía es porque ya cumples estos puntos, así que pasemos directamente al asunto.

Cómo instalar Samba en Debian 9

Para instalar Samba en Debian 9 Stretch usaremos los repositorios oficiales de la distribución, ya que disponemos de servidor, cliente y utilidades.

Abiremos una terminal para instalar Samba por consola y, como primer paso, actualizaremos la información de los repositorios y, bastante recomendable también, de los paquetes ya instalados en nuestro sistema Debian 9:

~$ sudo apt update && sudo apt -y upgrade

Con el sistema recién actualizado pasaremos a instalar el paquete samba junto con todas sus dependencias:

~$ sudo apt -y install samba

Tras la descarga e instalación de los paquetes, los nuevos servicios smbd y nmbd quedan activados y en ejecución con la configuración por defecto, tal y como podemos comprobar con systemctl status:

~$ systemctl status smbd nmbd
● smbd.service - Samba SMB Daemon
   Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-07-23 18:48:43 CEST; 7min ago
     Docs: man:smbd(8)
           man:samba(7)
           man:smb.conf(5)
 Main PID: 1513 (smbd)
   Status: "smbd: ready to serve connections..."
    Tasks: 4 (limit: 4915)
   CGroup: /system.slice/smbd.service
           ├─1513 /usr/sbin/smbd
           ├─1514 /usr/sbin/smbd
           ├─1515 /usr/sbin/smbd
           └─1518 /usr/sbin/smbd

● nmbd.service - Samba NMB Daemon
   Loaded: loaded (/lib/systemd/system/nmbd.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-07-23 18:48:45 CEST; 7min ago
     Docs: man:nmbd(8)
           man:samba(7)
           man:smb.conf(5)
 Main PID: 1551 (nmbd)
   Status: "nmbd: ready to serve connections..."
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/nmbd.service
           └─1551 /usr/sbin/nmbd
~$

La máquina Debian 9 ya es visible para el resto de máquinas de la red local. Por ejemplo, desde una máquina Windows 7, aunque no esté configurada con el mismo grupo de trabajo ya podríamos ver la máquina Debian en la ventana del explorador de red:

como instalar samba en debian 9
Vista de los equipos de red local que trabajan con el protocolo SMB

 

En otros sistemas el explorador de red puede mostrar las máquinas agrupadas por el grupo de trabajo que tienen configurado. Samba en Debian 9 viene configurado por defecto con el grupo de trabajo WORKGROUP. Por ejemplo, en un Windows XP cuyo grupo de trabajo no sea este, al abrir el explorador de Red de Microsoft Windows veríamos el grupo que forma la máquina Debian:

instalar samba en debian 9
Red Microsoft Windows en Windows XP

 

Ya tenemos Samba funcionando en Debian 9, ahora vamos a configurarlo.

Cómo configurar Samba en Debian 9

A la hora de configurar Samba en Debian 9 hemos de saber que la carpeta de archivos de configuración se encuentra en la ruta /etc/samba/. Dentro de esta carpeta encontraremos el archivo principal de configuración de Samba, el archivo smb.conf.

Cómo cambiar el grupo de trabajo de Samba

Una primer ajuste rápido de configuración podría consistir en cambiar el grupo de trabajo para ajustarlo al del resto de equipos de la red local. Para ello editaremos smb.conf:

~$ sudo nano /etc/samba/smb.conf

Buscamos la sección [global] y justo la primera directiva, workgroup,  es la que configura el grupo de trabajo:

...
# Change this to the workgroup/NT-domain name your Samba server will part of
   workgroup = WORKGROUP
...

Cambia el valor asignado por el de tu grupo de trabajo. En mi caso, el grupo de trabajo de mi red local es SEVEN_KINGDOMS, por lo tanto quedaría así:

   workgroup = SEVEN_KINGDOMS

Una vez guardados los cambios, para que estos entren en vigor, ya de vuelta a línea de comandos, reiniciamos los servicios con systemctl restart:

~$ sudo systemctl restart smbd nmbd

Y ya tendremos la máquina Debian 9 en el grupo de trabajo que nos interesa.

Acceder a las carpetas de usuario

Para que un usuario pueda acceder a los recursos compartidos del servidor Samba es necesario darlo de alta en el sistema de usuarios de Samba, que es independiente del de Debian 9. Suponiendo que ya tenemos usuarios en el sistema Debian 9 (como el que estamos usando para realizar estas configuraciones), los habilitaríamos uno a uno mediante el comando smbpasswd:

~$ sudo smbpasswd -a usuario
New SMB password:
Retype new SMB password:
Added user usuario.
~$

Ahora el usuario usuario puede acceder, por ejemplo, a su directorio home en el servidor desde otra máquina.

Para evitar que usuarios que no estén dados de alta conecten como invitados modificaremos la configuración en smb.conf. Dentro de la sección [global] buscamos la directiva map to guest:

...
# This option controls how unsuccessful authentication attempts are mapped
# to anonymous connections
        map to guest = bad user
...

Cambiaremos el valor bad user por never:

        map to guest = never

Ya que estamos, si tienes intención de conectar desde un sistema antiguo como Windows XP necesitarás incluir esta línea también en la sección [global]:

        ntlm auth = yes

Y si quieres que los usuarios puedan cambiar o crear archivos dentro de su directorio home remotamente, buscaremos en la sección [homes] la directiva read only:

...
# By default, the home directories are exported read-only. Change the
# next parameter to 'no' if you want to be able to write to them.
   read only = yes
...

El valor por defecto es yes, lo que significa que el modo de acceso es de sólo lectura. Cambiaremos el valor a no para poder escribir y crear archivos y carpetas.

También tienes posibilidad de modificar la máscara de creación para archivos y directorios, que en principio es muy restrictiva (acceso sólo para el propietario):

...
   create mask = 0700
...
   directory mask = 0700
...

A pesar de restrictivos, son valores seguros y con los que se puede trabajar.

Quizás podrías indicar 0600 para create mask, ya que normalmente el permiso de ejecución no tendrá sentido en la mayoría de archivos modificados. Si conoces los valores exactos que te interesan tanto para archivos y directorios, especifícalos.

Una vez guardados los cambios habrá que reiniciar los servicios y ya tendremos acceso.

como configurar samba en debian 9
Acceso a los directorios de usuario en modo lectura y escritura

 

Crear un recurso compartido de SAMBA en Debian 9

Crear un recurso compartido SAMBA en Debian 9 Stretch es muy sencillo. Vamos a crear una carpeta compartida de sólo lectura llamada descargas.

El primer paso será crear la ubicación física de la carpeta que vamos a compartir:

~$ sudo mkdir -p /var/samba/descargas/

Normalmente por defecto se creará con permisos de lectura y acceso para todo el mundo, pero sólo escritura para el propietario (root en este caso).

Es necesario editar smb.conf y añadir una nueva sección con el nombre del recurso entre corchetes. Por ejemplo, crearemos una carpeta remota llamada descargas, por lo que añadiremos la sección [descargas] tal que así:

[descargas]
        path = /var/samba/descargas

Si reiniciamos los servicios de Samba, esta nueva carpeta estará disponible con acceso de lectura para todo el mundo.

Restringir el acceso a un grupo

Si necesitas que sólo algunos usuarios puedan acceder al recurso compartido debes seguir los siguientes pasos:

1. Crea un nuevo grupo en tu sistema Debian 10.

Este grupo servirá para relacionar a todos los usuarios que tengan acceso al recurso compartido. En este ejemplo usaremos como nombre para el grupo descargas:

~$ sudo addgroup descargas

2. Añade los usuarios con acceso permitido a ese grupo.

Añade a ese grupo todos tus usuarios de Debian 10 que necesites que accedan al recurso compartido.

~$ sudo adduser usuario descargas

Repite el proceso con cada usuario.

3. Añade los usuarios a la base de usuarios de SAMBA.

Con el comando smbpasswd iremos añadiendo usuario a usuario, especificando lo contraseña:

~$ sudo smbpasswd -a usuario
New SMB password:
Retype new SMB password:
~$

Igualmente, repite el mismo proceso con cada usuario.

4. Cambia el grupo al que pertence el recurso compartido.

Asignaremos como grupo de la carpeta que creamos para el recurso compartido, el grupo de usuarios que estamos creando:

~$ sudo chown :descargas /var/samba/descargas/

5. Añade la directiva valid users a la configuración del recurso compartido.

Dentro de smb.conf, en la definición del recurso compartido añade la directiva valid users con el valor del nombre del grupo precedido de un carácter @:

[descargas]
        path = /var/samba/descargas
        valid users = @descargas

Listo, sólo queda guardar los cambios y reiniciar los servicios.

Con esta estrategia puedes crear distintos recursos accesibles para distintos grupos. Jugando con los usuarios en cada grupo y los grupos permitidos, darás acceso a unos usuarios u otros.

Permitir escritura en el recurso

La estrategia que seguiremos es dar permisos de escritura al grupo que posee el recurso, y forzar que ese sea el grupo con el que Samba creará y modificará los archivos.

Es decir, damos permisos de escritura al grupo del recurso compartido:

~$ sudo chmod g+w /var/samba/descargas/ -R

En la configuración del recurso compartido, añade la directiva read only con el valor no:

[descargas]
        path = /var/samba/descargas
        valid users = @descargas
        read only = no

Esta directiva concede permiso de escritura desde Samba, pero para el ejemplo de un grupo de usuarios trabajando sobre un recurso compartido en modo escritura, quizás te pueda interesar que unos y otros puedan modificar todos los archivos.

Una idea es forzar que el grupo con el que se escribe sea el mismo para todos los usuarios, y que la máscara de permisos con que se crean los archivos y directorios tenga activada la escritura del grupo.

Esto quedaría así:

[descargas]
        path = /var/samba/descargas
        valid users = @descargas
        read only = no
        force group = descargas
        create mask = 0660
        directory mask = 0770

Guarda los cambios y reinicia los servicios.

Lo que debes tener en cuenta para que tu estrategia de acceso de archivos mediante Samba es que concuerden permisos, usuarios y grupos entre el sistema de archivos de Debian 9 y la configuración de Samba.

Cómo acceder a recursos compartidos SAMBA desde Debian 9

En esta parte de la guía vamos a ver cómo acceder a carpetas y archivos compartidos desde otros sistemas. Para acceder a recursos remotos NO es necesario instalar Samba, ya que el modo más simple de hacerlo es montando los recursos remotos.

Para montar los recursos compartidos que ofrecen otros sistemas en el sistema de archivos local, usamos el comando mount. Pero el tipo de sistema de archivos que usaremos será especial, el sistema cifs que no viene incluido por defecto en el sistema. Por lo tanto tendremos que instalar el paquete que lo contiene, cifs-utils:

~$ sudo apt -y install cifs-utils

Con el paquete y sus dependencias descargados e instalados, procederemos a montar el recurso compartido en el sistema local, para lo que necesitaremos los siguientes datos:

  • Dirección IP del servidor
  • Nombre del recurso compartido
  • Punto de montaje en el sistema de archivos local
  • Usuario con el que acceder
  • Contraseña del usuario

La sintaxis del comando mount para realizar esta tarea sería similar a esta:

~$ sudo mount -t cifs //direccion_ip/recurso_compartido /punto_de_montaje -o user=usuario

Por ejemplo, para acceder a una carpeta compartida llamada descargas en un servidor con dirección IP 192.168.112.124, identificándonos como el usuario juan y montando el recurso remoto en la ruta local /mnt/descargas/, emplearíamos este comando:

~$ sudo mount -t cifs //192.168.112.124/descargas /mnt/descargas -o user=juan
Password for juan@//192.168.112.124/descargas:  **********
~$

Y tendremos disponibles los contenidos del recurso remoto a través de la ruta local /mnt/descargas/:

~$ ls -ls /mnt/descargas
total 0
      0 drwxr-xr-x 2 root root          0 feb 18 18:53 software
      0 drwxr-xr-x 2 root root          0 feb 12 10:44 soporte
      0 drwxr-xr-x 2 root root          0 mar 11 17:29 SSOO
~$

Al terminar de trabajar con el recurso conviene demontar el sistema de archivos remoto:

~$ sudo umount /mnt/descargas
~$

Conclusión

Ahora ya sabes cómo instalar y configurar Samba en Debian 9 Stretch, así que podrás compartir archivos entre distintas plataformas con el viejo protocolo SMB que lleva décadas funcionando.

Si tienes dudas o preguntas, sugerencias o notificaciones, déjame un mensaje.

Y si con este tutorial has evitado un callejón sin salida a la hora de configurar SAMBA en Debian 9, ¡invítame a un café si te apetece!

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 votos, promedio: 5,00 de 5)
Cargando…

Deja un comentario

Cerrar menú

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información

ACEPTAR
Aviso de cookies