En este caso práctico vamos a continuar trabajando con los sistemas debsrv (Debian 12 con interfaz gráfica de usuario basada en escritorio xfce) y srv01 (Debian 12 con CLI basado en bash) con los que llevamos trabajando en esta serie de casos prácticos.
Vamos a realizar las siguientes tareas de administración entre sistemas:
- Preparar el sistema de ficheros del servidor srv01 para compartir recursos en red utilizando SMB/CIFS como protocolo de nivel de aplicación para compartir directorios en red entre iguales.
- Configuraremos recursos compartidos en Samba
- Configuraremos acceso a usuarios del sistema a través de Samba.
Todo este proceso de administración sobre el sistema srv01 lo vamos a llevar a cabo en remoto utilizando ssh desde el sistema debsrv.
Paso 1 – Crear y configurar directorios en el sistema de ficheros
Vamos a crear y configurar los siguientes directorios en nuestro sistema, todos ellos estarán dentro del directorio /educatica/informatica/cursos
- GNULinux. Todos los miembros del grupo educatica podrán acceder para realizar operaciones de lectura. Solo el usuario solgm podrá acceder para realizar operaciones de lectura y escritura.
- Windows. Todos los miembros del grupo educatica podrán acceder para realizar operaciones de lectura.
- Python. Tan solo el usuario evaha podrá acceder para realizar operaciones de lectura y escritura.
- Redes. Todos los miembros del grupo educatica podrán acceder para realizar operaciones de lectura y escritura. El resto de usuarios no podrá acceder.
- Web. Todos los miembros del grupo educatica podrán acceder para realizar operaciones de lectura. Solo el usuario javiergp podrá acceder para realizar operaciones de lectura y escritura.
- Publico. Cualquier usuario podrá acceder para realizar operaciones de solo lectura.
- Compartido. Cualquier usuario podrá acceder para realizar operaciones de lectura y escritura.
Si no existe alguno de los usuarios o grupos mencionados, deberás crearlos.
Evidencias
Muestra el contenido del directorio /educatica/informatica/cursos con información extendida de permisos, propietario y grupo.
Solución

Estamos en el sistema remoto. Lo primero que vamos a hacer es crear todos los directorios que nos solicitan.

Ahora nos queda configurar los permisos, propietario y grupo de cada uno de los directorios en base a los requisitos dados en el enunciado.

Vamos a crear un script que se encargue de crear los usuarios que le pasemos por parámetro y además los añada al grupo educatica.

No hemos tardado ni un minuto en crear el script. Ahora vamos a utilizarlo para crear los usuarios solgm, evaha y javiergp y que los inserte en el grupo educatica.
Disclaimer. Por supuesto que este script podría mejorarse, pero la finalidad de este script actualmente es solucionar un problema menor, después podemos pulirlo.

Ahora configuramos cada directorio según nos han solicitado en el enunciado.

Siguiente

Siguiente: Python. Tan solo el usuario evaha podrá acceder para realizar operaciones de lectura y escritura.

Siguiente, Redes. Todos los miembros del grupo educatica podrán acceder para realizar operaciones de lectura y escritura. El resto de usuarios no podrá acceder.

Web. Todos los miembros del grupo educatica podrán acceder para realizar operaciones de lectura. Solo el usuario javiergp podrá acceder para realizar operaciones de lectura y escritura.

Publico. Cualquier usuario podrá acceder para realizar operaciones de solo lectura.

Compartido. Cualquier usuario podrá acceder para realizar operaciones de lectura y escritura.

Todo esto quedaría así

Paso 2 – Configuraremos recursos compartidos en Samba
Samba es una suite o conjunto de aplicaciones que permiten compartir directorios e impresoras entre sistemas heterogéneos utilizando los protocolos de red de nivel de aplicación SMB/CIFS.
Estos protocolos de red fueron creados por Microsoft para permitir compartir directorios e impresoras entre iguales en sistemas operativos de Microsoft. Son los protocolos que permiten compartir carpetas entre sistemas Windows.
Nosotros vamos a aprender a compartir directorios en sistemas GNU/Linux con sistemas tanto GNU/Linux como Windows, sistemas heterogéneos, utilizando el software de Samba comoservidor.
En este caso práctico, el servidor Samba está instalado en srv01, que es la máquina con sistema CLI. Ya hemos creado varios directorios que queremos compartir ahora nos quedará crear los recursos compartidos en red para compartirlos de forma individual.
Podríamos compartir el directorio que contiene todos estos recursos compartidos, pero esto no es lo que nos piden. Iremos compartiendo cada uno de estos directorios como recursos compartidos uno a uno con las características que se irán pidiendo a lo largo del enunciado.
Para ayudarnos en el proceso utilizaremos todo el material publicado en www.educatica.es sobre Samba. Tenemos disponible un apartado dedicado a Samba en Compartir recursos en red – Samba.
El fichero de configuración de samba está en /etc/samba/smb.conf
Vamos a echar un vistazo

Tiene muchas líneas, veamos cuantas

Vamos a ver cuantas líneas tenemos de comentarios

Resulta que en el fichero de configuración de samba podemos utilizar dos tipos de comentarios. Las líneas que comiencen por # o por ; se considerarán comentarios por Samba.
Vamos a mostrar la configuración de samba sin comentarios.

Como quitamos los saltos de línea continuos…. tr 😉

¿Cuantas líneas tiene esta configuración?

Además de mirar directamente el fichero de configuración de Samba podemos utilizar el comando testparm que nos va a venir genial para comprobar si la configuración que hemos hecho tiene algún problema y además nos mostrará la configuración efectiva de Samba.

Vamos a echar un vistazo a las secciones que aparecen en nuestro fichero de configuración.

Las secciones global y homes son secciones predefinidas. La sección global proporciona la configuración general del servidor Samba. Es decir, los parámetros de configuración que se utilizan en esta sección configuran el comportamiento general del servidor Samba.
La sección homes configura los directorios compartidos de los usuarios del sistema en el que se está ejecutando el servidor Samba. Es decir, todos los parámetros de configuración que utilicemos en esta sección se aplican al acceso a los directorios compartidos de los usuarios del sistema a través de Samba.

Todas estas secciones son secciones predeterminadas. La última sección, print$ termina con el final del fichero (<EOF>).
Recurso compartido public
Vamos a crear un nuevo recurso compartido llamado public que compartirá el directorio /educatica/informatica/cursos/Público de forma que los usuarios anónimos puedan acceder para realizar solo operaciones de lectura.
Para crear un recurso compartido tenemos que crear una sección en el fichero de configuración de Samba. Dentro de esa sección, utilizando los parámetros de configuración adecuados, configuraremos el comportamiento del recurso compartido.
En este caso el nombre del recurso compartido y por tanto de la sección será public.

Al final del fichero, creamos una nueva sección con el nombre del recurso compartido.
Los parámetros de configuración que vamos a utilizar son los siguienteS:
- path
- read only
- guest ok
El primero parámetro path determina la ruta del directorio que vamos a compartir dentro del sistema de ficheros del sistema en el que está el servidor Samba. En nuestro caso /educatica/informatica/cursos/Publico.

Ya lo hemos configurado, ¿ahora qué?. Habría que reiniciar el servicio, aunque en las últimas versiones de Samba esto no es necesario. No obstante, por si acaso, lo vamos a reiniciar.

Vamos a comprobar la configuración efectiva de samba para el recurso public

Si vamos abajo del todo para ver la configuración de public nos encontramos con que el parámetro read only = yes no aparece.

Esto es porque el valor por defecto de read only es yes.

¿Cuál será el valor defecto de guest ok?

Pero… ¿cómo comprobamos que esto funciona de verdad?. Vamos a utilizar el programa smbclient que es un cliente de SMB/CIFS para entorno CLI o solo texto.

Después de instalarlo en srv01 vamos a probarlo para listar los recursos compartidos en //localhost

Vamos a comprobar si tenemos conexión desde el sistema debsrv utilizando el mismo comando.

Vamos a añadir un comentario el recurso compartido public: «Documentos compartidos de educatica»

Vamos a probar si esto aparece con smbclient -L

Ahora vamos a probar a acceder desde debsrv pero utilizando el navegador de sistemas de ficheros.

Vamos a probar acceder a public

Entramos y… no hay nada!

Vamos a crear o copiar un fichero en el directorio compartido en el recurso public desde srv01 y actualizamos en el navegador de sistema de ficheros.

Según los permisos del fichero, no se lo podrá descargar nadie, excepto root.

Los permisos del sistema de ficheros prevalecen sobre los permisos de Samba. Otra forma de verlo es que Samba tratará de acceder al fichero o directorio con el usuario de Samba, si es acceso anónimo, para usuarios invitados o con el usuario del sistema si el usuario utiliza credenciales.
Cambiamos los permisos para que cualquiera pueda leer.

ahora si se puede leer

Ahora si que se puede leer

Recurso compartido shared
Vamos a crear un nuevo recurso compartido llamado shared que compartirá el directorio /educatica/informatica/cursos/Compartido de forma que los usuarios anónimos puedan acceder para realizar solo operaciones de lectura y escritura.

Vamos a probar

Entramos desde el sistema debsrv

Creamos un directorio y copiamos un fichero

Vamos a ver los ficheros en el sistema de ficheros de srv01.

Resto de recursos compartidos
ahora nos toca crear un recurso compartido en Samba para cada uno de los directorios que hemos creado en esta actividad.
Cada recurso compartido tendrá como nombre el nombre del directorio que se está compartiendo. Además se añadirá un comentario breve sobre el recurso que se está compartiendo. Tenemos que usar parámetros de configuración que se adapten a los permisos de acceso de cada uno de los directorios.
Windows
Windows. Todos los miembros del grupo educatica podrán acceder para realizar operaciones de lectura. Solo los miembros de educatica.

La configuración de permisos en el sistema de ficheros es correcta. Nos queda configurar Samba.
Ahora vamos a llevar a cabo dos pasos fundamentales que más adelante detallaremos dentro de una metodología o proceso de compartición de recursos a través de samba para que no se nos olvide nada.
Configuramos el recurso compartido en Samba. Editamos /etc/samba/smb.conf

Esta configuración no es suficiente, tenemos que hacer algo más, aparte de reiniciar el servicio smbd.

Esta configuración va a dar problemas porque nos falta un paso, añadir usuarios a la base de datos de usuarios de Samba.
Samba utiliza una BBDD de usuarios a los que les permitirá acceso a través de conexiones con Samba (SMB/CIFS) para listar los usuarios en la base de datos podemos ejecutar el comando pdbedit con la opción -L.

La BBDD de usuarios de Samba está vacía. Para añadir un usuario a la BBDD de usuarios de Samba tenemos que usar el comando smbpasswd.

Con esas opciones podemos gestionar la BBDD de usuarios de Samba.

Vamos a mostrar ahora la lista de usuarios en la BBDD de usuarios de Samba.

Ahora si podemos tratar de acceder al recurso compartido Windows desde Samba utilizando las credenciales de un usuario de la BBDD de samba.

Hemos accedido! Vamos a crear una carpeta, Apuntes y dentro un fichero llamado leeme.txt

Creamos el directorio

Oh! no tenemos permisos, hemos puesto read only = yes, por tanto Samba no nos dejará realiar operaciones de escritura.
Vale, ya que estamos aquí vamos a dejar un fichero llamado saludo.txt desde la terminal con el usuario root en el directorio que estamos compartiendo como el recurso windows, es decir en /educatica/…./Windows.

Vamos a ver si por lo menos podemos leer 😉

Ahora vamos a hacer un pequeño cambio, queremos que los miembros de educatica puedan realizar operaciones de lectura y escritura.
Tenemos que editar el fichero de samba y cambiar read only.

Salimos y reiniciamos el servidor smbd.

Esto no funcionará….

Vamos a echar un vistazo a los permisos del sistema de ficheros

Oh! El grupo educatica no tiene permisos de escritura. Vamos a modificarlo.

Vamos a probar a crear la carpeta ahora

Tachan! Se ha creado el directorio 🙂 Vamos a copiar un fichero también 🙂

Peroooo… vamos a echar un vistazo a los permisos de los ficheros y directorios del directorio que estamos compartiendo

Vale está bien, pero… queremos que todos los ficheros y directorios que se creen dentro de Samba pertenezcan al grupo educatica. Además queremos que si se crea un directorio o un fichero el grupo sea educatica y que el grupo tenga permisos de lectura y escritura.
Parámetro de configuración:
- force group
- create mode. Modo en octal que se tratará de configurar a un fichero que se cree a través de Samba en este Recurso compartido. Ojo debería empezar con un 0 delante, por ejemplo 0640 o 0644
- directory mode. Modo en octal que se tratará de configurar a un fichero que se cree a través de Samba en este Recurso compartido. Ojo debería empezar con un 0 delante, por ejemplo 0770 o 0755

Reiniciamos y probamos

Vamos a ver los permisos del nuevo directorio creado

Vamos a subir un fichero

Vamos a ver los permisos

Recurso compartido GNULinux
Parámetros de configuración que posiblemente utilicemos serán:
- comment
- path
- read only
- guest ok
- valid users
- write list
- force group
- create mode
- directory mode
GNULinux. Todos los miembros del grupo educatica podrán acceder para realizar operaciones de lectura. Solo el usuario solgm podrá acceder para realizar operaciones de lectura y escritura.

Vamos a comprobar la configuración del directorio que estamos compartiendo para ver si la configuración de permisos, propietario y grupo me permiten compartir el recurso como quiero.

Hay que reiniciar smbd

No tengo ganas de irme a la interface gráfica de usuario :_(

Vamos a iniciar sesión con smbclient como aplicación cliente de SMB/CIFS desde una terminal. Para ello utilizaremos la opción -U seguida del nombre del usuario que queremos utilizar para conectarnos al recurso. Después escribimos la ruta del recurso compartido utilizando el estilo de Windows.

Vamos a mostrar la ayuda con el comando help

Vamos a mostrar el contenido del recurso compartido

Vamos a subir algo

Hemos subido un fichero

Vamos a mirar el contenido en srv01 del directorio que estamos compartiendo

Dejar una respuesta