educación, informática y demás

2310 - SAMBA

Instalación y primeros pasos

Suite Samba

Samba es una suite de herramientas que permiten acceder a recursos compartidos en red y compartirlos utilizando los protocolos de red de nivel de aplicación SMB/CIFS creados por Microsoft para compartir directorios e impresoras entre iguales en sus sistemas operativos.

Estos protocolos SMB/CIFS son los utilizados por los sistemas operativos de Microsoft, como Windows en sus versiones de escritorio o Windows Server, para compartir directorios e impresoras entre iguales. En otros casos prácticos se han compartido recursos en red utilizando las herramientas de Microsoft.

Para poder acceder a estos directorios compartidos desde un sistema operativo que no es de Microsoft podemos utilizar las herramientas de Samba para acceder como cliente a estos recursos compartidos.

Para poder compartir recursos, directorios e impresoras, utilizando estos protocolos desde sistemas operativos que no son de Microsoft, como GNU/Linux o MacOS, podemos instalar el software servidor de la suite Samba.

Precisamente esto, instalar y configurar un servidor Samba, es lo que vamos a hacer en esta serie de casos prácticos para compartir recursos en un sistema GNU/Linux utilizando los protocolos SMB/CIFS permitiendo la compartición de datos entre sistemas heterogéneos.

Instalando Samba

Para instalar samba lo primero que tenemos que hacer es actualizar la lista de paquetes disponibles en los repositorios de nuestro sistema.

Una vez actualizado, el único paquete que necesitamos instalar es samba. No obstante, aprovecharemos en este caso para instalar otra herramienta, smbclient, que será muy útil para probar el funcionamiento de samba

Una vez instaladas las aplicaciones, podemos utilizar samba en nuestro sistema.

Gestión de samba: demonio smbd

Al instalar el servidor Samba en nuestro sistema se instala un demonio o servicio que será el encargado de gestionar las peticiones de conexión a través de SMB/CIFS a los recursos compartidos en el sistema. Este servicio se llama smbd.

Podemos gestionar el servicio utilizando el comando service o el comando systemctl (The difference between systemctl an service)

Nos vamos a inclinar por utilizar systemctl, aunque podríamos utilizar service, para gestionar el demonio encargado de compartir recursos en red utilizando SMB/CIFS en nuestro sistema.

La sintaxis de systemctl es la siguiente:

systemctl <operacion> <servicio>

Las operaciones más habituales disponibles son:

  • status. Muestra el estado del servicio
  • stop. Para el servicio
  • start. Inicia el servicio
  • restart. Reinicia el servicio
  • reload . Recarga la configuración del servicio

Para más información sobre systemctl se puede consultar su página de manual con el comando man.

Vamos a comprobar el estado del servicio smbd

Podemos parar el servicio con la opción stop. Al ser una tarea administrativa tiene que lanzarse como root.

Si queremos volver a lanzar el servicio, utilizamos la opción start.

Por último, una operación muy habitual cuando realizamos un cambio en la configuración del servicio a través de sus ficheros de configuración es la opción restart. Esta opción reinicia el servidor, apagándolo y lanzándolo de nuevo.

Fichero de configuración de samba: smb.conf

El fichero de configuración de samba es smb.conf y se encuentra dentro del directorio de configuración de samba en /etc/samba. De esta forma, la ruta completa del fichero es /etc/samba/smb.conf.

Este fichero contiene una serie de parámetros de configuración organizados en secciones. Para conocer en detalle cómo se configura este fichero podemos consultar la página de manual del propio fichero, utilizando el comando man seguido de smb.conf.

Para más información sobre samba y el fichero de configuración smb.conf, puedes consultar el apartado de configuración de samba en la sección dedicada a samba en este sitio web.

Para editarlo podemos utilizar un editor de texto como nano o mousepad, en función de nuestros gustos y necesidades.

El fichero de configuracíon que nos encontramos tras instalar samba es un fichero de ejemplo con una configuración básica por defecto.

Este fichero contiene muchos comentarios que nos vienen muy bien para aprender acerca de parámetros de configuracíón o secciones presentes en el fichero de prueba, pero pueden ser molestos a la hora de entender o razonar sobre la configuración que tenemos en el fichero.

Según la página de manual de smb.conf podemos encontrarnos con dos tipos de comentarios, las líneas que comienzan por # y las líneas que comienzan por ; son consideradas comentarios por Samba.

Samba utiliza dos tipos de comentario de línea: # y ;

Podemos mostrar solo las líneas de configuración del fichero utilizando el filtro grep y limpiar la salida con el filtro tr.

De esta forma mostraremos tan solo las líneas de configuración que realmente están presentes en el fichero, sin comentarios ni líneas vacías.

La diferencia del contenido es significativa: 236 líneas del fichero de configuración por defecto frente a 36 líneas de configuración reales.

Así pues, puede que nos resulte interesante mantener una copia de este fichero de configuración de ejemplo con todos los comentarios y mantener un fichero de configuración que contenga tan solo la configuración que queramos aplicar a nuestro sistema sin comentarios ni opciones comentadas.

Herramienta testparm

Antes de concluir con esta sección vamos a ver un comando muy interesante que nos puede ayudar a encontrar errores de sintaxis en la configuración de samba, se trata de la herramienta testparm.

Esta herramienta comprueba el fichero de configuración smb.conf en busca de errores de sintaxis en la configuración. Si el programa no muestra errores, entonces el fichero de configuración será correcto para samba, al menos desde el punto de vista sintáctico. Es decir, puede que sea correcto sintácticamente, pero no que haga lo que nosotros esperamos que haga (semántica de la configuración).

Podemos consultar la página de manual de testparm usando el comando man.

Si lo ejecutamos, realizará la comprobación de la configuración y nos mostrará la configuración efectiva en el fichero de configuración, quitando los parámetros de configuración que tengan asignados valores por defecto.

Por ejemplo, el parámetro read only por defecto, según el manual de smb.conf, tiene asignado el valor yes.

Por tanto, el comando testparm no mostrará este parámetro de configuración a menos que esté establecido a no. Veamos un ejemplo, en nuestro fichero de configuración, en la sección [homes] aparece read only configurado con el valor yes.

Aunque su valor por defecto es yes, no está mal dejar constancia de la configuración para tener claro cuál será su valor.

Sin embargo, si ejecutamos el comando testparm, después de comprobar la corrección de la configuración, nos permite consultar la configuración efectiva del fichero de configuración, si pulsamos enter.

En el volcado nos encontramos esta información:

Si nos fijamos en la configuración efectiva de la sección homes, no aparece read only, puesto que tiene su valor por defecto.

Podríamos forzar a que testparm nos muestre la configuración efectiva con todos los valores por defecto de los parámetros de configuración. Para ello podemos pasarle la opción -v al ejecutarlo.

Dejar una respuesta