educación, informática y demás

Samba

Instalación y configuración de samba

Instalando samba

Actualizamos la lista de paquetes disponibles

La instalación mínima de samba sería la siguiente

Pero vamos a instalar algunos paquetes más

Fichero de configuración de samba

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

Comentarios: Líneas que comiencen sin # ni ;

Podemos mostrar tan solo la configuración quitando las líneas que contengan # y ; (podríamos especificar que comiencen por)

Hay muchos cometnarios que nos vienen muy bien para aprender, pero que nos pueden dificultar el razonamiento sobre la configuración que tenemos

Ayuda de samba

Configuración básica

Vamos a configurar mínimamente nuestro servidor Samba para compartir recursos en red.

Editamos el fichero con un editor de texto y nos vamos a la sección Global.

Vamos a tocar la sección global

Así está inicialmente

Vamos a añadir el parámetro netbios name a la configuración. Buscamos en la ayuda…

La configuración quedaría así

Con esto nos hemos puesto un identificador, conectado a un grupo de trabajo y determinado un comentario para nuestro servidor.

Sin embargo no estamos compartiendo nada…

Compartiendo un recurso de forma básica

Para compartir un recurso tenemos que crear una nueva sección personalizada. El nombre de la sección será el nombre del recurso compartido.

Aprovechamos que tenemos instalado un servidor FTP en nuestro sistema y compartimos a través de Samba el directorio raíz del FTP con el nombre de recurso compartido ftp.

Aplicando la configuración

Una vez adaptado el fichero de configuración a nuestras necesidades, guardamos y reiniciamos el servidor samba con service o systemctl.

Accediendo a los recursos compartidos

Para acceder a los recursos compartidos podemos utilizar desde terminal bash la herramienta smbclient.

También podemos utilizar cualquier navegador de sistemas de ficheros en un sistema informa´tico conectado a través de la red con nuestro equipo.

Empezamos probando con smbclient y la opción -L para que liste los recursos compartidos del equipo que le pasemos por parámetro.

Vamos a acceder ahora desde el navegador de sistemas de ficheros desde GNU/Linux.

Podemos probar con la url smb://localhost

Este acceso es local, estamos accediendo a nuestro propio equipo. Vamos a acceder, de nuevo, a nuestro equipo pero usando la dirección IP asignada.

¿Se pod´ria acceder desde Windows? Si, siempre y cuando los equipos estén conectados en red.

La forma de escribir la URL desde Explorer es distinta, aquí no tenemos que especificar el protocolo smb puesto que es un protocolo propio de Microsoft y el explorador entiende que es un recurso en red al escribir las dos barras.

¿Podemos escribir en el directorio anonimos? En una práctica anterior, con el servidor FTP, configuramos este directorio para que todos los usuarios tuvieran permiso de escritura.. pero desde samba, en la configuración de samba, hemos configurado que no se puede acceder con el parámetro read only = yes

Por lo tanto, no nos va a dejar escribir.. por ahora 🙂

Vamos a mirar la configuración del servidor FTP en nuestor xubutu…

A través del FTP, es decir si nos conectamos usando el protocolo FTP con un cliente FTP podremos escribir en el directorio anonimos que está en el raíz público del FTP. Vamos a probarlo!

Aunque usamos explorador de Windows estamos accediendo usando dos protocolos distintos conectándonos a dos servicios o servidores distintos con configuraciones distintas.

** Mirar en la configuración del servidor FTP si hay algún parámetro que gestione operaciones de modificación en ficheros.

Vamos a dejar que se pueda escribir en el recurso compartido FTP desde samba.

Compartiendo un recurso para lectura y escritura (I)

Para permitir operaciones de escritura desde Samba tenemos que configurar el parámetro read only. En nuestro ejemplo tenemos la siguiente configuración:

read only = yes establece que el recurso compartido ftp será de solo lectura.

El único cambio que tenemos que hacer es asignar un no al parámetro read only, de esta forma no será de solo lectura el acceso.

Guardamos y reiniciamos el servidor. En mi caso estoy usando dos terminales para no tener que cerrar el editor de texto con la configuración.

Accedemos desde Windows y probamos 🙂

Nos deja realizar operaciones de lectura y escritura

Sin embargo, si intentamos crear un directorio en el recurso ftp..

Oh! Dios mio!!!

No podemos, porque no tenemos permiso de escritura en el directorio /srv/ftp que es el directorio que se está compartiendo.

Los permisos del sistema se aplican siempre. Cuando nos conectamos a través de un servicio en red a un equipo remoto, se aplica la configuración del servicio, pero también la configuración del sistema. en este caso, se aplican los permisos de samba, permite escritura en /srv/ftp, pero los permisos del sistema no permiten escribir a los «otros».

Por cierto, ¿quienes son los usuarios invitados para Samba?. Como sabemos, en los Unix-Like todo fichero tiene que tener un propietario y un grupo. Si accedemos con un usaurio anónimo, ¿quién será el propietario y el grupo de los ficheros subidos o creados?

Por defecto, se asigna nobody como propietario y nogrupo como grupo cuando se crean ficheros a través de samba con usuarios invitados. Los permisos por defecto son 755. Todo esto es configurable (mira los contenidos!)

Utilizando usuarios locales del sistema

Hemos visto como se comparte un recurso para que los usuarios invitados, anónimos, puedan acceder a él. Pêro, ¿qué pasa si queremos compartir un recurso de forma que solo los usuarios del sistema puedan acceder?. Es decir, que tengan que tener una cuenta en el sistema, evitando los accesos anónimos.

Pues para ello tendremos que añadir previamente los usuaros a la base de datos de usuarios de samba.

Todo esto lo vamos a hacer con el comando smbpasswd.

Vamos a añadir a marinapg, alfredoff y ramonam.

Hemos añadido estos tres usuarios a la base de datos de usuarios de Samba.

Vamos a usar el comando pdbedit con la opción -L para mostrar los usuarios que hay en la base de datos de usuarios de Samba.

Una vez añadidos los usuarios a la base de datos de usuarios de Samba, podemos acceder con ellos a recursos compartidos. De esta forma, por ejemplo, podemos compartir un recurso al que solo puedan acceder los usuarios del sistema.

Vamos a compartir el directorio /home de forma que solo los usuarios del sistema, en realidad solo aquellos que estén dados de alta en la B.D de usuarios de Samba, puedan acceder a el para realizar operaciones de lectura y escritura. Como nombre de recurso compartido le pondremos home.

Si leemos el párrafo anterior, nos salen directamente los parámetros.

Vamos a compartir el directorio /home (path = /home) de forma que solo los usuarios del sistema (guest ok = no), en realidad solo aquellos que estén dados de alta en la B.D de usuarios de Samba (smbpasswd -a previamente), puedan acceder a el para realizar operaciones de lectura y escritura (read only = no). Como nombre de recurso compartido le pondremos home ([home]).

Guardamos, reiniciamos y probamos desde Windows 🙂

Al intentar acceder me pide credenciales de acceso, porque no están permitidos los usuarios invitados o anónimos.

Al darle a aceptar nos encontramos con todo esto 🙂

Cuidadín!!! Estamos accediendo al directorio que contiene todos los directorios personales, por defecto, de los usuarios del sistema remoto. Si no hemos configurado adecuadamente nuestro sistema GNU/Linux, podemos tener un problema de confidencialidad.

El usaurio anagp tiene configurado su directorio personal de forma que cualquier puede acceder para leer. ¿Podremos escribir?.

Si intentamos entrar en el directorio personal de marinapg, no nos dejará.

¿Y si intentamos entrar en nuestro directorio personal? Estamos con el usuario alfredoff así que vamos a alfredoff.

Vamos a probar a escribir en este directorio.

¿A quién pertenecerá ese directorio en el sistema de ficheros local?. Vamos a verlo…

El usuario y grupo que se ha asignado al fichero creado desde Samba es el del usuario local con el que nos hemos conectado. Es decir, aunque estamos desde Samba conectados remotamente, para el sistema operativo estamos trabajando con el usuario local alfredoff y, por tanto, si se crea un fichero se asigna como propietario dicho usuario y grupo su grupo primario.

¡Oh! ¡Un error!

Directorios personales de los usuarios locales

Podemos compartir a través de la red los directorios personales de los usuarios locales del sistema dónde está instalado Samba. Podríamos pensar en crear un sección para cada usuario, es más podríamos crear un script para ello. Algo así:

[marinapg]

path = /home/marinapg

Esto sería muy farragoso… Para ello, Samba proporciona la sección [homes]. Si descomentamos la sección [homes] samba compartirá los directorios personales de los usuarios del sistema.

Dejar una respuesta