educación, informática y demás

2310 - SAMBA

Compartiendo directorios

En esta entrada vamos a ver como se pueden compartir directorios como recursos compartidos a través de un servidor Samba. Vamos a analizar y utilizar distintos parámetros de configuración, algunos de los cuales ya hemos utilizado a lo largo de los supuestos prácticos de este caso práctico.

Toda la información sobre los principales parámetros de configuración de Samba utilizados en recursos compartidos por el usuario están en la sección dedicada a Samba, en concreto en el apartado Análisis de parámetros de configuración.

Parámetros:

  • path
  • comment
  • read only
  • guest ok
  • valid users
  • invalid users
  • write list
  • read list
  • force user
  • force group
  • create mask
  • directory mask

Directorio de solo lectura para invitados

Vamos a compartir un directorio como recurso compartido con el nombre shared de forma que cualquier usuario anónimo pueda acceder a su contenido para realizar solo operaciones de lectura. Como descripción del recurso compartido vamos a utilizar la siguiente cadena de texto «Documentos públicos de educatica»

La ruta del directorio será /educatica/publico.

Solución

Editamos el fichero de configuración de samba.

Ahora debemos cerciorarnos de que el directorio /educatica/publico existe y que los usuarios de samba podrán acceder a él.

Vamos a probar a acceder desde Windows. Antes de esto, vamos a dejar un fichero de texto plano para que se pueda leer.

Accedemos desde Windows. Si accedemos al equipo, samba mostrará los recursos compartidos en él. En este caso solo shared

Si conocemos la ruta del recurso compartido, podemos escribirla directamente en la barra de direcctiones.

Accedemos y podemos realizar operaciones de lectura

Cualquiera puede acceder a este recurso compartido para realizar operaciones de lectura.

Directorio de lectura y escritura para invitados

Vamos a compartir un directorio como recurso compartido con el nombre uploads de forma que cualquier usuario anónimo pueda acceder a su contenido para realizar operaciones de lectura y escritura. Como descripción del recurso compartido vamos a utilizar la siguiente cadena de texto «Ficheros compartidos a lo loco»

La ruta del directorio será /educatica/ficheros.

Solución

Configuramos Samba para que cumpla con las restricciones del enunciado.

Configuramos el sistema de ficheros para asegurarnos de que el directorio /educatica/ficheros existe y que cualquiera tiene permiso de lectura y escritura.

Tenemos cambiar los permisos para que cualquier usuario pueda escribir en ese directorio.

Vamos a probar si esta configuración ha funcionado y vamos a echar un vistazo a los ficheros y directorios creados.

Accedemos a uploads y creamos el directorio ISOs

Vamos a crear un fichero de texto plano.

La pregunta ahora es, ¿qué permisos, propietario y grupo le habrá dado samba a estos ficheros?. Vamos a comprobarlo.

Si nos fijamos, se ha establecido como propietario y grupo a ramonam. Esto es así porque en la sesión de windows que hemos utilizado, el explorador de windows mantiene la sesión de ramonam conectada a este servidor Samba.

Directorio de acceso solo para usuarios del sistema de solo lectura

Comparte el directorio /educatica/users como recurso compartido con el nombre usuarios de forma que cualquier usuario con cuenta en el sistema pueda acceder a su contenido para realizar solo operaciones de lectura. Por tanto, los usuarios anónimos no se permiten.

Como descripción del recurso compartido: «Directorio de datos usuarios del sistema»

Solución

Primero editamos el fichero de configuración de samba

Ahora comprobamos si existe el directorio que vamos a compartir y configuramos, en caso necesario, permisos, propietario y grupo.

Por último, para asegurarnos de que la configuración se va a leer de nuevo, reiniciamos el servidor samba.

Vamos a probar el acceso a través de samba usando en esta ocasión smbclient.

Falla, no puede ser… en el primer caso esperabamos que fallara el acceso porque no hemos escrito contraseña para el usuario alumno, es decir estabamos accediendo como anónimo.

Pero en el segundo caso debería haber funcionado. El error esta provocado por un fallo humano, pero no lo sabíamos… revisamos el fichero de configuración:

Corregimos el error y comprobamos de nuevo

Vamos a probar a acceder.

Probamos el acceso desde Windows.

Directorio de acceso solo para usuarios del sistema con acceso de lectura y escritura

Vamos a cambiar la configuración del recurso usuarios, que no usaurios, para que ahora los usuarios del sistema puedan escribir en este directorio.

Solución

Editamos el fichero de configuración

Ahora comprobamos si existe el directorio que vamos a compartir y configuramos, en caso necesario, permisos, propietario y grupo. El directorio existe, así que nos centramos en los permisos.

Comprobamos si se puede acceder con permiso de escritura y lectura con usuarios del sistema

Vamos a ver que permisos efectivos tiene el fichero que acabamos de crear.

Por ahora los permisos nos convencen.

Directorio de acceso para el grupo educatica con acceso de solo lectura

Comparte el directorio /educatica/grupos/staff como recurso compartido con el nombre plantilla de forma que cualquier usuario del sistema que pertenezca al grupo educatica pueda acceder a su contenido para realizar solo operaciones de lectura. Por tanto, ni los usuarios anónimos ni otros usuarios que no pertenezcan al grupo educatica se les permitirá acceder.

Solución

Configuración del sistema de ficheros local

Vamos a realizar alguna comprobación con smbclient

Directorio de acceso para el grupo educatica con acceso de lectura y escritura

Modifica la configuración del recurso plantilla para que los usuarios del grupo educatica puedan acceder para realizar operaciones tanto de lectura como de escritura.

Solución

Configuración de samba

Configuramos el sistema

Reiniciamos el servicio y comprobamos si funciona

Fallos típicos

Otro fallo típico

Otro fallo típico…

Directorio de acceso solo para los usuarios del sistema de solo lectura, grupo educatica lectura y escritura

Modifica la configuración del recurso plantilla para que los usuarios del grupo educatica puedan acceder para realizar operaciones tanto de lectura como de escritura y que el resto de usuarios del sistema puedan acceder pero solo para realizar operaciones de lectura. No se permiten invitados, claro está.

Solución

Configuramos Samba

Con esta configuración, al haber eliminado valid users, podrán acceder todos los usuarios del sistema que tengan cuenta en la base de datos de usuarios de samba para realizar operaciones de solo lectura (read only = yes son los permisos por defecto para todos). Al usar write list, lo que estamos haciendo es definir una excepción a los permisos de acceso generales. Es decir, los usuarios que estén en la lista de escritura (write list) podrán escribir, el resto no.

En resumen, con valid users decidimos qué usuarios del sistema podrán acceder. Con read only decidimos que operaciones se pueden hacer para todos los usuarios de forma general. Con write list decidimos qué usuarios podrán escribir, sea cual sea la configuración de acceso general (read only).

Configuramos los permisos locales

Si nos fijamos, con la configuración local ahora mismo, daría igual utilizar write list y configurar read only = no, puesto que los permisos locales son más restrictivos y coinciden con lo que nos piden en el enunciado. No obstante, con fines académicos y para evitar suposiciones en el futuro, configuramos los permisos en samba como nos piden y los permisos locales para que se puedan aplicar los acceso configurados en samba.

Reiniciamos y comprobamos.

El usuario anagp pertenece a educatica así que podrá escribir sin problema. marinagp no pertenece al grupo educatica, no puede escribir pero si acceder y leer.

Directorio de acceso solo para los usuarios del sistema de solo lectura, grupo educatica lectura y escritura, anagp solo lectura

Modifica la configuración del recurso plantilla para que los usuarios del grupo educatica puedan acceder para realizar operaciones tanto de lectura como de escritura, que el usuario anagp nunca pueda realizar operaciones de escritura y que el resto de usuarios del sistema puedan acceder pero solo para realizar operaciones de lectura.

Solución

Configuramos samba

Ahora configuramos el sistema para que funcione correctamente la configuración hecha en samba. Vamos a ver los permisos del directorio /educatica/grupos/staff

No podemos controlar que si anagp accede de forma local al directorio compartido pueda escribir, pero eso no se pide. Solo se pide que si anagp accede a través de samba, no pueda escribir.

Comprobamos si funciona… Para asegurarnos podemos reiniciar el servicio smbd.

Vamos a comprobar usuarios

Accederemos desde smbclient

Oh! tenemos un problema

Resulta que la escritura prevalece sobre la lectura. No podemos tener esta configuración, al menos de forma simple, en Samba.

Directorio de acceso solo para los usuarios del sistema de solo lectura, excepto los miembros del grupo bloqueados

  • invalid users

Comparte el directorio /educatica/proyectos como recurso compartido con el nombre proyectos de forma que cualquier usuario del sistema pueda acceder a su contenido para realizar solo operaciones de lectura excepto aquellos usuarios que pertezcan al grupo bloquedos.

Solución

Configuramos Samba

Configuramos el sistema

Vamos a meter un fichero para que se pueda leer

Ahora, vamos a comprobar si el grupo bloqueados existe en el sistema. Si no existe, lo creamos para evitar problemas.

Comprobamos los accesos

Probamos con un usuario que pertenece al grupo bloqueados.

Ahora vamos a sacar al usuario del grupo bloqueados y probamos de nuevo.

Directorio de acceso solo para los usuarios del sistema de solo lectura, excepto los miembros del grupo bloqueados, ahora con escritura y alguna cosas más

Vamos a modificar el recurso proyectos para que ahora los usuarios del grupo educatica tengan permiso de escritura. Todos los ficheros que se suban tendrán como grupo al grupo educatica con permisos de lectura y escritura para propietario y grupo y solo lectura para el resto. Todos los directorios que se creen también pertenecerá al grupo educatica y tendrán todos los permisos para propietario y grupo y solo lectura y acceso para el resto.

Parámetros

  • force group
  • create mask o create mode
  • directory mask o directory mode

Solución

Configuramos el sistema

Tenemos que conseguir que los miembros del grupo educatica puedan escribir.

Vamos a probarlo

Accedemos con marinapg

Directorio de acceso para invitados con solo lectura y para el grupo educatica con lectura y escritura, anagp solo acceso de lectura

  • guest ok = yes
  • read only = yes
  • write list = +educatica
  • read list = anagp

Directorio de acceso para invitados con solo lectura y para el grupo educatica con lectura y escritura, anagp solo acceso de lectura, prohibido acceso del grupo bloqueados

  • guest ok = yes
  • read only = yes
  • write list = +educatica
  • read list = anagp
  • invalid users = +bloqueados

Dejar una respuesta