Saltar a contenido

AC62. Instalación y preparación Servidor Samba

Instalación

sudo apt install samba

Configuración de carpetas compartidas

  1. Editamos el fichero de configuración: /etc/samba/smb.conf

  2. Al final del archivo de configuración añadiremos una nueva entrada con el directorio a compartir:

[ejercicio1]
    comment = Prueba Ejercicio 1
    path = /srv/samba/ejercicio1
    browsable = yes
    guest ok = yes
    read only = yes
    create mask = 0764
    directory mask = 0764
  1. Creamos el directorio que íbamos a compartir y cambiamos los permisos para que no de conflicto.
sudo mkdir -p /srv/samba/ejercicio1
sudo chmod 764 /srv/samba/ejercicio1/
  1. Siempre que modifiquemos el fichero de configuración debemos reiniciar el servicio:
sudo systemctl restart smbd

Parámetros Básicos:

  • [X]: Nombre del recurso a compartir, normalmente un directorio.
  • Comment: Comentario que describe el directorio que se está compartiendo.
  • Path: Es la carpeta que se quiere compartir. Puede ser cualquier carpeta del servidor, no obstante, por estándar las carpetas compartidas de un servidor suelen encontrarse dentro del directorio /srv.
  • Browsable: Permite navegar por el directorio usando el navegador de directorios.
  • Guest ok: No es necesario introducir contraseña (modo invitado).
  • Read only: Indica si los permisos de un cliente son de lectura (yes) o de escritura/lectura (no).
  • Create Mask: Indica los permisos de los ficheros creados por los clientes. Por defecto 0744 (todos los permisos para usuario propietario y solo permiso de lectura para grupo y otros usuarios).
  • Directory Mask: Indica los permisos de los directorios creados. Por defecto 0755 (todos los permisos para usuario propietario y solo permiso de lectura/ejecución para grupo y otros usuarios).

A tener en cuenta

  • El primer bit del “umask” se usa para opciones especiales (stickybit, SGID o SUID), como no vamos a usarlo, debe estar siempre a 0.
  • En el fichero de configuración de samba tanto los # como el ; indicando comentarios.
  • Es importante comprender que tenemos dos niveles de seguridad. El establecido por el fichero de configuración samba y los propios permisos del directorio compartido.

Integración de permisos

La gestión de permisos de usuarios y grupos es sustancialmente diferente en Sistemas Unix y en Sistemas Microsoft Windows. A continuación se describen las diferencias.

Permisos Unix

  • En los Sistemas Unix, la gestión de los permisos que los usuarios y los grupos de usuarios tienen sobre los archivos se realiza mediante un sencillo esquema de tres tipos de permisos (lectura, escritura y ejecución) aplicables a tres tipos de usuarios (propietario, grupo propietario y resto), los cuales se denominan trios de permisos.

En la siguiente figura se puede observar su funcionamiento:

Ventajas

  • Este sencillo esquema se desarrolló en los años 70 y aún hoy resulta adecuado para la gran mayoría de los sistemas en red que podamos encontrar en cualquier tipo de organización, desde pequeñas redes a las más grandes.
  • Es cierto que tiene algunas limitaciones pero la ventaja de ser sencillo hace que su administración sea fácil y su rendimiento muy elevado.

Permisos Windows

  • En los Sistemas Microsoft Windows, la gestión de los permisos que los usuarios y los grupos de usuarios tienen sobre los archivos, se realiza mediante un complejo esquema de listas de control de acceso (ACLs = Access Control Lists) para cada carpeta y cada archivo.

Ventajas

  • El sistema de ACLs tiene la ventaja de ser mucho más flexible que el sistema Unix ya que se pueden establecer más tipos de permisos, establecer permisos solo a algunos usuarios y algunos grupos, denegar permisos, etc..., pero como hemos comentado anteriormente, en la mayoría de los casos, con las prestaciones del Sistema Unix es suficiente.

Desventajas

En el lado contrario, el sistema de ACLs es más complejo de administrar y más lento ya que antes de acceder a las carpetas o archivos, el sistema debe comprobar listas mientras que en Unix hace una operación lógica de los bits que especifican los permisos lo cual es muchísimo más rápido.

Permisos Samba

Samba tiene también implementado el sistema de ACLs y se gestiona utilizando el comando smbcacls, no obstante, **la recomendación es utilizar el sistema de gestión de permisos de Unix.

consejo

Para realizar una gestión eficaz de usuarios, grupos y permisos, se recomienda utilizar los permisos de Unix que permiten asignar permisos de lectura, escritura y ejecución al usuario propietario del archivo, al grupo propietario del archivo y al resto de usuarios del sistema.

advertencia

  • Puede ocurrir que exista contradicción entre los permisos del sistema Unix y los permisos del recurso compartido en samba, por ejemplo, podemos tener una carpeta compartida llamada almacen-software con permisos Unix de lectura, escritura y ejecución para todos, en cambio si en el archivo de configuración de samba, dicho recurso tiene el parámetro read only = yes, no será posible realizar cambios ya que está compartido con permiso de 'solo lectura'. - Cuando los permisos Unix se contradicen con los permisos samba, el permiso efectivo es el más restrictivo de los dos.

Acceso desde Cliente Windows

  1. Abrimos un explorador de directorios.
  2. Seleccionamos Red (Network)
  3. Puede que tengamos que habilitar el descubrimiento de redes:

Como alternativa, en caso de no descubrir el equipo podemos abrir un explorador de directorio y colocar en la barra de direcciones \\IP_Servidor

Cuestiones sobre la práctica

Razona todas las respuestas, en caso de que la respuesta sea debido a unos permisos indica que permisos tiene y donde han sido determinados.

  1. Sigue todos los pasos del manual (apartado anterior) para conseguir compartir ficheros. Adjunta una captura de la sección del fichero de configuración de samba donde se muestre la configuración del recurso compartido.
  2. Desde el servidor, crea un fichero hola.txt en la carpeta /srv/samba/ejercicio1.
  3. Desde el cliente windows accede al servidor mediante un explorador de directorios e intenta abrir el documento ¿Existe algún problema para ello? Razona tu respuesta.
  4. Seguidamente modifica el fichero e intenta guardarlo. ¿Qué ocurre? ¿Por qué?
  5. Ahora, desde el cliente Windows, intenta crear un fichero. ¿Te deja? ¿Puedes leer y escribir en él? ¿Por qué?
  6. Desde el servidor, modifica los permisos de /srv/samba/ejercicio1/hola.txt para que tenga los siguientes permisos rwxr—rwx, ahora desde el cliente Windows prueba a modificar el contenido de dicho fichero. ¿Qué ocurre y por qué? Si no te deja escribir y guardar los cambios, indica que deberías cambiar para que puedas hacerlo.
  7. Crea una carpeta en el servidor /srv/samba/ejercicio2. Comparte dicha carpeta, añadiendo una nueva entrada en el fichero de configuración de samba. La carpeta debe ser navegable, se debe poder acceder sin credenciales, debe tener permisos de lectura/escritura y además los ficheros creados por los clientes podrán ser modificados, leídos y ejecutados por cualquiera. Por otro lado, los directorios creados por los clientes solo podrán ser modificados por el usuario propietario, mientras que el resto de usuarios/grupos no tendrán ningún permiso. Muestra la configuración realizada.
  8. Desde un cliente Windows (como usuario propietario) intenta acceder a la carpeta ejercicio2 y crear un documento llamado “miTesoro.txt”. Acto seguido, vuelve al servidor e intenta modificar el fichero (SIN SER SUDO) ¿Existe algún problema? ¿Por qué?
  9. Ahora desde el cliente (Windows) crea un directorio llamado “Mairon”. Vuelve al servidor e intenta crear un fichero “Sauron.txt” dentro de Mairon (SIN SER SUDO). ¿Qué ocurre? ¿Qué permisos tiene la carpeta “Mairon”?.