educación, informática y demás

Sistemas Operativos en Red

Active Directoy. Directorios compartidos en red GNU/Linux y Windows (2)

Escenario inicial

El escenario inicial es el que hemos estado desarrollando a lo largo de los casos prácticos de los contenidos. Contamos con un dominio en el que tenemos conectados varios equipos. Hemos conectado un equipo con GNU/Linux Ubuntu 20.04 a dicho dominio y hemos accedido a recursos compartidos en el servidor Windows Server 2016 desde el sistema Ubuntu utilizando cuentas del dominio.

Ahora queremos compartir algunos recursos en red desde esta máquina de forma que sean accesibles desde otros equipos del dominio.

Intalando samba

Para poder compartir recursos directorios e impresoras en red con otros equipos utilizando el protocolo SMB/CIFS de Microsoft tenemos que instalar el servidor Samba en nuestro equipo.

Si quieres conocer más acerca de Samba puedes consultar la página en este sitio web sobre Samba o visitar el sitio web oficial de Samba y leer un poco acerca de lo que hace este paquete de software.

Además de instalar el servidor Samba vamos a instalar una aplicación cliente de SMB/CIFS llamada smbclient que nos permitirá acceder a recursos compartidos desde la terminal en modo texto.

Como vamos a realizar tareas de administración deberemos trabajar con una cuenta que tenga permisos para ejecutar comandos como root utilizando sudo.

Primero, como siempre, actualizamos la lista de paquetes disponibles en nuestros repositorios.

Actualizamos la lista de paquetes disponibles

Ahora vamos a instalar el servidor Samba y smbclient.

Instalando el servidor Samba y el programa smbclient

Script de control de samba

Podemos gestionar el servicio o demonio Samba a través de su script de control. Para ello podemos utilizar el comando server seguido del nombre del script de control y de la operación que queremos realizar con samba.

Si ejecutamos el script de control sin pasarle parámetros nos muestra las opciones disponibles:

Con la opción status podemos ver el estado del servicio en nuestro sistema

Las opciones más habituales son:

  • start. Inicia el servicio o demonio Sabma
  • stop. Para el servicio o demonio de Samba
  • restart. Reinicia el servicio o demonio de Samba.
  • reload. Recarga la configuración de Samba sin detener el servicio. Puede provocar problemas.
  • status. Da información del estado del servicio.

Fichero de configuración de samba

El fichero principal de configuración de Samba está en /etc/samba/smb.conf.

En este sitio web hay información sobre configuración de Samba en el apartado Compartir recursos en red – Samba, de Servicios en Red.

Este fichero, como se comenta en los contenidos sobre Samba, está dividido en secciones. Cada sección se inicia con la etiqueta de sección, compuesta por el nombre de la sección entre corchetes. La sección termina cuando se inicie otra sección, es decir un nombre entre corchetes, o se llegue al final del fichero.

Hay una serie de secciones predefinidas, como [Global] o [Homes] y otras creadas por el usuario – administrador – para compartir recursos.

Veamos la configuración actual de samba mostrando el contenido del fichero de configuración.

Si nos fijamos, hay muchas líneas de comentario. Los comentario son buenos, porque nos dan información sobre parámetros de configuración de Samba. No obstante nos dificultan el razonamiento sobre la configuración actual de samba: se mezclan muchas líneas comentadas con líneas de configuración.

¿Cómo quitamos los comentarios?. Lo primero que tenemos que saber es cómo se representan los comentarios en un fichero de configuración de samba: iniciando con # o ;.

Configuración global

La sección [Global] almacena la configuración global o general del servidor Samba en este equipo. Aquí podemos configurar, por ejemplo, el nombre con el que se reconocerá este equipo en la red.

Editamos el fichero de configuración y vamos a seleccionar como lenguaje SH, para que nos resalte los comentarios y las asignaciones de valores a parámetros de configuración.

Vamos a configurar algunos detalles de nuestra máquina.

Compartir un directorio

Vamos a compartir un directorio como un recurso compartido en red para que cualquier usuario pueda acceder al mismo y descargar información almacenada en él. No se permitirán operaciones de escritura a través de la red.

El directorio será /compartido/publico.

  • Primero. Creamos el directorio a compartir en el sistema de ficheros si es que no está creado ya.
  • Segundo. Configuramos los permisos del directorio a compartir para que los usuarios puedan realizar las operaciones que se piden.
  • Tercero. Configuramos el recurso compartido en Samba a través del fichero de configuración /etc/samba/smb.conf.

Primero, creamos el directorio.

Creamos al directorio y mostramos los permisos

Ahora configuramos los permisos en el sistema de ficheros para que este directorio cumpla con los requisitos de acceso solicitados. Nos piden que cualquier usuario pueda acceder para leer.

Si nos fijamos con los permisos actuales, cualquier usuario puede acceder para leer.

Los permisos de los «otros» permiten acceder para lectura a cualquier usuario

Nos quedaría configurar Samba. Para ello vamos a crear una nueva sección personalizada con el nombre del recurso compartido, que en este caso será publico.

Con esto estamos indicando que vamos a compartir un directorio, cuyo nombre de recurso compartido será publico.

Ahora tenemos que configurar este recurso compartido. Como mínimo, deberíamos indicar la ruta del directorio que vamos a compartir.

Ahora estaría bien que configuraramos el acceso a dicho recurso compartido utilizando los parámetros de configuración guest ok y read only. Si no lo hacemos, este recurso utilizará los valores por defecto para dichos parámetros y no sabemos, ahora mismo, cuales son los valores por defecto.

Por último vamos a añadir un comentario al recurso compartido.

Guardamos los cambios en el fichero y reiniciamos el servidor samba para que se apliquen.

Vamos a usar el comando smbclient con la opción -L seguida de la ruta SMB de nuestra máquina para mostrar los recursos compartidos en esta máquina.

También podríamos haber utilizado el navegador de sistema de ficheros de nuestro sistema, en este caso nautilus.

Vamos a intentar acceder a público. Ahora nos pide que usemos credenciales o que accedamos como anónimo.

Ahora mismo el directorio está vacío, por tanto no aparecerá nada en el recurso compartido.

Vamos a crear un fichero y un directorio dentro del directorio /compartido/publico y vamos a ver como aparece en el recurso compartido.

Ahora si recargamos o actualizamos con F5 debería salir el directorio y el fichero.

No podemos realizar operaciones de escritura porque no tenemos permisos para ello ni en el sistema de ficheros, en el directorio publico, ni a través de samba con la configuración de read only = yes.

Compartir un directorio para operaciones de escritura

Supongamos que queremos tener otro directorio compartido pero en este caso queremos permitir operaciones de lectura y escritura a los usuarios anónimos. Este directorio estará en /compartido/anonimos y tendrá como nombre de recurso compartido uploads.

Hemos creado el directorio, pero con los permisos actuales, solo el usuario root podrá escribir en él. Para solucionar este problema tendremos que configurar los permisos de otros en el directorio de forma que cualquier usuario pueda acceder para escribir.

Ahora configuramos en samba este recurso compartido.

Vamos a acceder utilizando smbclient.

Si accedemos con nautilus.

Accedemos como anónimo.

Como curiosidad, si nos fijamos, cuando hemos creado el directorio o subido un fichero, estos tienen que tener un propietario. Como hemos accedido con usuario anónimo, Samba le ha asignado como propietario nobody y grupo a nogroup.

Acceso a un recurso solo por usuarios del sistema/dominio

Podemos compartir un recurso de forma que solo puedan acceder los usuarios del sistema o del dominio que estén dados de alta en la base de datos de usuarios del servidor samba.

Para dar de alta un usuario en la base de datos de usuarios de samba tenemos que utilizar el comando smbpasswd con la opción -a seguida del nombre del usuario.

Por ejemplo, vamos a añadir a alumno y a marinapg@castelar.ex.

Vamos a compartir el directorio /compartido/usuarios como recurso compartido «privado».

Creamos el directorio y lo configuramos.

Ahora configuramos samba

Guardamos y reiniciamos.

Vamos a probar primero con smbclient y la opción -U para seleccionar el usuario con el que queremos acceder al recurso compartido privado.

Vamos a tratar de acceder con el usuario marinapg@castelar.ex

Vamos a echar un vistazo al contenido del directorio

Vamos a hacerlo con nautilus.

Dejar una respuesta