Configuración de Samba

El siguiente paso es compartir los directorios para que los usuarios puedan acceder a los contenidos de las carpetas. Con este fin vamos a configurar el servicio samba para que nuestro Linux actúe como servidor principal de dominio .

add user script

Esta es la ruta completa a un guion que smbd ejecutará como root en las circunstancias especiales descritas más abajo.

Normalmente, un servidor Samba requiere que se creen los usuarios UNIX para todos los usuarios que accedan a los ficheros del servidor. En los sitios que usan bases de datos de cuentas Windows NT como su base de datos primaria, la creación de estos usuarios y el mantenimiento de la lista de usuarios en sincronía con el PDC Windows NT es una tarea pesada. Esta opción permite a smbd crear los usuarios UNIX requeridos bajo demanda cuando un usuario accede al servidor Samba.

Para usar esta opción, smbd tiene que estar puesto con la opción ``security''=server o ``security''=domain y "add user script" tiene que ponerse con la ruta completa hacia un guion que cree un usuario UNIX dado un argumento %u, que se expande al usuario UNIX que hay que crear.

Cuando el usuario Windows intenta acceder al servidor Samba, en el momento de iniciar la sesión (configuración de la sesión en el protocolo SMB), smbd contacta con el servidor de claves e intenta validar el usuario dado con la clave suministrada. Si la validación es efectiva, smbd intenta localizar un usuario UNIX en la base de datos de usuarios UNIX en el que aplicar el usuario Windows. Si la búsqueda falla, y "add user script" esta activado, smbd llamará al guion especificado como root, expandiendo cualquier argumento %u al nombre de usuario que tiene que crearse.

Si este guion consigue crear el usuario, entonces smbd continuará como si el usuario UNIX existiera con anterioridad. De esta forma, los usuarios UNIX se crean dinámicamente para concordar con las cuentas Windows NT existentes.

add user script = /usr/sbin/useradd -d /dev/null -s /bin/false -g samba -M %u -c 'maquina'

username map

Esta opción le permite especificar un fichero que contiene una corespondencia de nombres de usuarios de los clientes del servidor. Puede ser útil para varios propósitos. El más común es aplicar usuarios que utilizan máquinas DOS o Windows a los que tiene la máquina UNIX. La otra es aplicar múltiples usuarios a un nombre simple para que pueda compartir ficheros con más facilidad.

La correspondencia es línea a línea. Cada línea contiene un nombre UNIX a la izquierda de un '=' seguido por una lista de nombres de usuario a la derecha. La lista de usuarios de la derecha puede contener nombres de la forma @grupo en cuyo caso serán los usuarios del grupo correspondiente. El cliente especial llamado '*' es una plantilla que equivale a cualquier nombre.

El fichero se procesa en cada línea tomando el nombre suministrado comparándolo con cada nombre de usaurio de la derecha entonces se sustituye por el usuario cuyo nombre está a la izquierda. El proceso continúa en la línea siguiente.

Si alguna línea comienza por # see ignora.

Por ejemplo para mapear los nombres "admin" o "administrador" al nombre UNIX root tendría que poner:

root = admin administrador

O para asignar cualquiera del grupo UNIX "system" al nombre UNIX "sys" debería usar:

sys = @system

Puede tener tantas redirecciones como quiera en un fichero ``username map''.

Puede redirigir nombres de usarios Windows que tienen espacios usando comillas dobles. Por ejemplo:

julia = "Julia Fabrega"

redirigiría el nombre de usario windows "Julia Fabrega" al nombre de usuario unix julia.

Observe que se aplica la re-redireción a todas las ocurrencias de nombres de usuarios. Así si conecta a "\\server\fred" y "fred" es redirigido a "mary" entonces estará conectado actualmente a "\\server\mary" y necesitará suministrar una clave adecuada para "mary" no para "fred". La única excepción a esto es el nombre de usuario pasado a el ``password server'' (si tiene uno). El ``password server'' recibirá lo que suministre el cliente sin modificación.

También tiene que observar que no se realiza redirección inversa. El principal efecto que esto tiene es con la impresión. Los usuarios que han sido redirigidos pueden tener problemas para borrar los trabajos de impresión debido a que PrintManager bajo WfWg pensará que no es propietario del trabajo de impresión.

       username map = /etc/samba/smbusers

password level

Este parámetro define el máximo número de caracteres que puede estar en mayúsculas en las claves.

Por ejemplo, la clave dada es "FRED". Si password level está a 1 (uno), se probarían las siguientes combinaciones: Si "FRED" falla: "Fred", "fred", "fRed", "frEd", "freD". Si password level está a 2 (dos), se probarían las siguientes combinaciones: "FRed", "FrEd",

"FreD", "fREd", "fReD", "frED". Y así sucesivamente.

Cuanto más alto sea el valor más probable es que una clave mixta se verifique contra una clave simple. Sin embargo debería tener cuidado al usar este parámetro porqur reduce la seguridad e incrementa el tiempo que se lleva procesar una nueva conexión.

Un valor cero ocasionará sólo dos intentos, la clave tal cual y en mayúsculas.

       password level = 1

username level

Esta opcióna ayuda a Samba a intentar y 'suponer' el nombre real UNIX, ya que muchos clientes DOS envían todos los nombres en mayúsculas. Por defecto Samba intenta todo en minúsculas, seguido por el nombre de usario con la primera letra en mayúsculas, y falla si el nombre de usuario no se encuentra en la máquina UNIX.

Si este parámetro se pone a un valor no cero, el comportamiento cambia. Este parámetro es un número que especifica cuantas combinaciones de mayúsculas probar para intentar determinar el nombre de usuario UNIX. Cuanto mayor sea el número, más combinaciones comprobará, pero será más lento para determinar el nombre de usuario.

Use este parámetro cuando tenga nombres de usuario extraños en la máquina UNIX, tales como 'UnNombreExtraño'.

       username level = 1

unix password sync

Este parámetro booleano controla si Samba intenta sincronizar las claves UNIX con las claves SMB cuando la clave cifrada SMB del fichero smbpasswd se modifica. Si se pone como true, el programa '``passwd program''' se llama como root para permtir que la nueva clave UNIX se ponga sin acceder a la clave UNIX antigua (ya que la clave SMB ha cambiado el código no tiene acceso a la antigua clave no cifrada, sólo a la nueva). Por defecto está puesto como false.

unix password sync = Yes