Google
Web dns.bdat.net

Samba: compartir los directorios

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 NetBios.

Fichero /etc/smb.conf

La configuración se realiza en el fichero /etc/samba/smb.conf. El fichero consta de secciones y ``parámetros''. Una sección comienza con el nombre de sección, entre corchetes, y continúa hasta el comienzo de la siguiente sección. Las secciones contienen

``parámetros'' de la forma nombre=valor.

Sintaxis

  • El fichero tiene formato de línea, esto es, cada fin de línea representa bien un comentario, bien una sección o bien un parámetro.

  • Los nombres de secciones y ``parámetros'' son indistintos en mayúsculas o minúsculas.

  • Sólo el primer signo igual de un parámetro es significativo. Los espacios en blanco antes o después del igual se descartan.

  • Los espacios en blanco iniciales, internos y finales son irrelevantes. Los iniciales y finales se descartan. Los espacios en blanco interiores se guardan literales.

  • Cualquier línea que comience por punto y coma (;) o el carácter '#' se ignora, así como la que sólo contenga espacios en blanco. Es habitual considerar las líneas que comienzan por '#' como comentarios y usar el punto y coma (;) para deshabilitar líneas que no nos interese borrar. De todas formas esto queda al gusto del administrador.

  • Cualquier línea que que termine en \ continúa en la siguiente línea, como es habitual en Unix.

  • Los valores que hay a continuación de los signos iguales son cadenas (no necesitan comillas) o un valor lógico (booleano), que puede ser yes/no, 0/1 o true/false.

  • No impora si los valores lógicos se ponen en mayúsculas o minúsculas, pero se conserva en los valores de cadena.

  • Algunos elementos como los modos de creación son numéricos.

SUSTITUCIÓN DE VARIABLES

Muchas de las cadenas se pueden actualizar desde el fichero de configuración mediante sustituciones. Por ejemplo, la opción ``path''= /tmp/%u sería interpretada como "path=/tmp/juan" si el usuario está conectado con el nombre juan.

Estas sustituciones se aprecian mejor en las descripciones posteriores, pero hay algunas sustitciones generales que se aplican cuando pueden ser relevantes. Estas pueden ser:

%S = el nombre del servicio activo.

%P = el directorio raíz del servicio activo.

%u = nombre de usuario del servicio activo.

%g = nombre de grupo primario de %u

%U = nombre se usuario de sesión (el nombre de usuario que el cliente

quiere no es necesariamente el mismo que obtiene)

%G = prnombre de grupo primario de %U

%H = directorio home del usuario dado por %u

%v = versión de Samba

%h = el nombre del host que ejecuta Samba

%m = nombre netbios de la máquina cliente (muy útil)

%L = nombre netbios del servidor. Esto permite modificar su fichero

de configuración basado en lo que pide el cliente. Su servidor puede

tener una personalidad dual.

Más adelante vermos algunos ejemplos de sustitución, pero como muestra vemos el siguiente ejemplo:

include %m.conf
include %U.conf

Estas dos línea incluidas en el fichero de configuración harían que se incluyeran configuraciones particulares del servidor según la máquina desde la que realizamos la conexión (%m.conf) y según el cliente que inicia la sesión (%u.conf). En este caso si se conecta el cliente jose desde la máquina secretaría, al lanzar el servicio incluiría el contenido de los ficheros jose.conf y secretaria.conf. El resto de usuarios y máquinas no se verían afectadas por la configuración de estos ficheros.

Descripciones de los servicios

Cada sección del fichero de configuración describe un recurso compartido o servicio (salvo la sección ``[global]''). El nombre de sección es el nombre de servicio y los ``parámetros'' de la sección definen los atributos del servicio.

Hay tres secciones especiales ``[global]'' ``[homes]'' y ``[printers]'', que se desciben en ``secciones especiales''. Las siguientes notas se aplican a la descripción de servicios ordinarios.

El siguiente ejemplo de sección define un servicio de espacio para ficheros. El usuario tiene derechos de escritura en la ruta /home/bar. El acceso al servicio de realiza a través del nombre del servicio datos:

[datos]

path = /home/bar
writable = true

El siguiente ejemplo de sección define un servicio de impresión. El servicio es de sólo lectura, pero imprimible. Es decir, el único acceso de escritura permitido el mediante llamadas a open, escribir y cerrar un fichero de spool. El parámetro ``guest ok'' significa que se permite acceso como usuario invitado por defecto (especificado en cualquier lugar):

[unaimpresora]

path = /usr/spool/public
read only = true
printable = true
guest_ok = true

Secciones Especiales

La sección global

Los ``parámetros'' de esta sección se aplican a todo el servidor, o son por defecto para los servicios que no definen de forma específica ciertos elementos. Por ejemplo el parámetro WORKGROUP que define el nombre del dominio o grupo de trabajo es un parámetro global porque afecta a todo el servidor.

La sección homes

Si existe una sección denominada homes incluida en el fichero de configuración, los clientes se podrán conectar a su directorio HOME del servidor.

Cuando efectúa una solicitud de conexión, se comprueban los servicios existentes. Si alguno se verifica entonces se usa. Si no se encuenta ninguno, la solicitud de servicio se trata como un nombre de usuario y se busca en el fichero passwd local. Si el nombre existe y la clave es correcta, se crea un servicio mediante un duplicado de la sección

[homes].

Se efectúan algunas modificaciones en la sección recientemente creada:

  • El nombre de servicio se cambia de "homes" al nombre local del usuario.

  • Si no se sumistra ``path'', se usa el directorio home del usuario.

  • Si decide uar una línea ``path''= en su sección homes entonces encontrará útil la macro %S. Por ejemplo, path=/data/pchome/%S sería útil si tiene diferentes directorios home en su equipo, además del propio de Unix.

  • Esta es una forma rápida y sencilla de suministrar acceso a gran número de clientes a sus directorios home con un mínimo de preocupaciones.

  • Si el nombre de recurso solicitado es "homes" ocurre un proceso similar, salvo que no se modifica el nombre de recurso a petición del usuario. Este método de uso de la sección ``[homes]'' funciona bien si diferentes usuarios comparten un equipo cliente.

  • La seción [homes] puede especificar todos los ``parámetros'' de sección de un servicio normal, aunque unos tienen más sentido que otros.

Lo siguiente es un ejemplo típico de sección [homes]:

[homes]
writable = yes

Un punto importante:

Si se especifica el acceso de invitados en la sección ``[homes]'', todos los directorio home serán accesibles por todos los clientes, sin clave. En el caso poco probable de que esto sea deseable, también sería posible especificar acceso de sólo lectura.

Observe que la bandera ``browseable'' para los directorios home automáticos se heredará de la bandera browseable global, no la bandera browseable ``[homes]''. Esto es útil porque significa que poner browseable=no en la sección ``[homes]'' esconderá el servicio homes, pero lo hará visible el auto directorio home.

La sección printers

Esta sección funciona como la ``[homes]'', pero para impresoras.

Si aparece una sección [printers] en el fichero de configuración, los usuarios podrán conectar a cualquier impresora especificada en el fichero printcap del host local.

Cuando se solicita una conexión, se verifican los servicios existentes. Si se verifica alguno, se usa. Si no se encuentra ninguno, pero hay una sección ``[printers]'' se usa como se describió anteriormente. En otro caso, el nombre de servicio solicitado se trata

como un nombre de impresora y se mira en el fichero printcap apropiado para ver si el nombre de servicio solicitado es un nombre de impresora válido. Si se encuentra, se crea un nuevo servicio duplicando la sección de [printers].

Se efectúan algunas modificaciones a la nueva sección creada:

  • El nombre de servicio se asigna como el nombre de la impresora.

  • Si no se da nombre de impresora, se usa el nombre de impresora localizado.

  • Si el servicio no permite acceso de invitados y no se da nombre de usuario, el nombre de usuario se asigna como el nombre de impresora localizado.

Observe que el servicio [printers] debe ser ``printable'', si especifica otro, el servidor no cargará el fichero de configuración.

Normalmente el ``path'' indicado sería un directorio de spool, con permisos de escritura globales con el sticky bit activado. Una sección [printers] típica se parecería a los siguiente:

[printers]
path = /usr/spool/public
writable = no
public = yes
printable = yes

Usuarios de samba

Para que un usuario del sistema sea usuario de samba tenemos que agregarlo explícitamente con la orden smbpasswd.

Para añadir un usuario tendremos que ejecutar:

smbpasswd -a usuario

Si omitimos la opción -a entonces simplemente se cambia la contraseña para samba del usuario.

La lista de usuarios de samba se almacena en el fichero /etc/samba/smbpasswd.

Usuarios virtuales

Existe la posibilidad de asignar múltiples nombres a un mismo usuario en el fichero /etc/samba/smbusers. Por ejemplo:

# Unix_name = SMB_name1 SMB_name2 ...

root = administrator admin

nobody = guest pcguest smbguest

indicaría que los usuarios reales serían root y nobody, pero los usuarios admin y administrator serían en realidad el usuario root.

Puede resultar útil si varias personas tienen que acceder a los mismos datos crear una sola cuenta en samba y luego asignarle diferentes nombres en este fichero.

Nuestro fichero smb.conf

El contenido del fichero smb.con que vamos a utilizar para nuestro trabajo va a ser el siguiente. A continuación se describe el significado de las líneas más significativas:

[global]
workgroup = CENTRO
netbios name = web
server string = Servidor Samba para la Web
interfaces = 192.168.1.1 127.0.0.1
encrypt passwords = Yes
min passwd length = 1
root directory = /
passwd program = /usr/bin/passwd %u
passwd chat = *ew\sUNIX\spassword* %n\n *etype* %n\n *all\sauthentication\stokens\supdated\ssuccessfully*
add user script = /usr/sbin/useradd -d /dev/null -s /bin/false -g samba -M %u -c 'maquina'
username map = /etc/samba/smbusers
password level = 1
username level = 1
unix password sync = Yes
log level = 1
log file = /var/log/samba/log.%m
max log size = 50
socket options = TCP_NODELAY
SO_SNDBUF=4096 SO_RCVBUF=4096
character set = ISO8859-15

client code page = 850

    domain admin group = @root root admin
domain guest group = @nobody
logon script = %U.bat
logon drive = h:
logon home = \\%N\%U\profile
domain logons = Yes
preferred master = True
domain master = True
wins support = Yes
lock dir = /var/lock/samba
remote announce = 192.168.2.255
admin users = root admin
hosts allow = 192.168.1. 192.168.2.
127.
include = /etc/samba/smb.conf.dominio
os level=99
[homes]
comment = Directorios personales
read only = No
browseable = No
hide files = /.*.*/
[netlogon]
comment = Network Logon Service
path = /home/netlogon
read only = No
guest ok = Yes
[Profiles]
path = /var/perfiles/%U
browseable = No
[printers]
comment = Impresoras
path = /var/spool/samba
printable = Yes
browseable = No
[direccion]
path = /var/www/html/direccion
browseable = No

read only = No

[secretaria]
path = /var/www/html/secretaria
browseable = No

read only = No

[datos]
path = /var/datos
browseable = Yes

read only = Yes

Workgroup

Este parámetro controla en qué grupo de trabajo aparecerá su servidor cuando sea consultado por los clientes. En nuestro caso:

workgroup = CENTRO

netbios name

Este parámetro fija en nombre NetBIOS por el cual es conocido el servidor Samba. Por defecto es el mismo nombre que el primer componente del nombre DNS del host. Si la máquina es un servidor de listas o servidor logon este nombre ( o el primer componente del nombre DNS) será el nombre por el que estos servicios se anuncian.

netbios name = web

server string

Esto controla qué cadena aparecerá en el cuadro de comentario de la impresora en el gestor de impresión y en la conexión IPC en "ver red". Puede ser cualquier cadena que quiera que vean sus usuarios.

También fija qué aparecerá en las lista despues del nombre de equipo.

Un %v se sustituye por el número de la versión de Samba.

Un %h se sustituye por el nombre de host.

Valor por defecto: server string = Samba %v

server string = Servidor Samba para la Web

interfaces

Esta opción le permite configurar múltiples interfaces de red, para que samba pueda manejar las listas de recursos en todos los interfaces.

Esta opción toma una lista de pares ip/máscara_red. La máscara de red puede ser o máscara de bits o longitud de bits.

Por ejemplo, la siguiente línea

interfaces = 192.168.2.10/24 192.168.3.10/24

configuraría dos interfaces de red con direcciones IP 192.168.2.10 y 192.168.3.10. Las máscaras de ambos interfaces serían 255.255.255.0.

Se podría conseguir un resultado equivalente usando:

interfaces = 192.168.2.10/255.255.255.0 192.168.3.10/255.255.255.0

si prefiere el formato.

Si esta opción no está fijada entonces Samba intentará encontrar un interfaz primario, pero no intentará configurar más de un interfaz.

interfaces = 192.168.1.1 127.0.0.1

encrypt passwords

Este parámetro lógico controla si las claves cifradas se negocian con el cliente. Observe que Windows NT 4.0 SP3 y superiores y también Windows 98, por defecto esperan claves cifradas salvo que modifiquemos una entrada del registro.

Para que las claves cifradas funcionen correctamente smbd debe tener, bien acceso al fichero smbpasswd local (véase el programa smbpasswd para información sobre como mantener este fichero), o usar el parámetro ``security''= con los valores "server" o "domain", que hace que se valide con otro servidor.

encrypt passwords = Yes

min passwd length

Esta parámetro indica la longitud mínima de la clave.

min passwd length = 1

root directory

El servidor hará chroot() a este directorio al iniciar. Esto no es estrictamente necesario para ooperacions seguras. Incluos sin esta opción el servdor denegará el acceso a ficheros que no estén en las entradas del servicio. Tambiñen puede verificar, y denegar el acceso a enlaces simbólicos a otras partes del sistemas de archivos, o intentos de usar .. en nombres de fichero para acceder a otros directorios (dependiendo del estado del parámetro ``wide links'').

Añadir una entrada ``root dir '' distinta a "/" añade un nivel extra de seguridad, pero a un precio. Esto asegura de forma absoluta que no se proporcionará ningún acceso a ficheros que no estén en en el árbol de directorios especificado en la opción ``root dir '', incluyendo esto algunos ficheros necesarios para la operatividad completa del servidor. Para mantener un operatividad plena del servidor necesitará replicar algunos sistemas de archivos en el árbol ``root dir''. En particular necesitará réplicas de /etc/passwd (o un subconjunto de él) y cualquier binario ofichero de configuración necesitados para la impresión (si es necesario). El conjunto de archivos debe ser duplicado de forma dependiente del sistema operativo.

root directory = /

passwd program

El nombre de un programa que se puede usar para fijar claves de usuarios.

Esto sólo es necesario si ha activado cambio remoto de claves cuando compiló Samba. Cualquier ocurrencia de %u será sustituida por el nombre de usuario.

También tiene que tener en cuenta que muchos programas passwd insisten en claves "razonables", tales como longtud mínima, o inclusión de distintos tipo de caracteres y dígitos. Esto puede ser un problema en algunos clientes (como Windows para trabajo en grupos) que envían claves en mayúsculas.

Observe que si el parámetro ``unix password sync'' está como "True" este programa se llama como ROOT antes de que la clave SMB del fichero smbpasswd se cambie. Si la modificación de la clave UNIX falla, entonces smbd fallará en el cambio de la clave SMB también (esto es por diseño).

Si el parámetro ``unix password sync'' está activo tiene que usar rutas absolutas para todos los programas que se llamen. Observe que por defecto ``unix password sync'' está como "False".

passwd program = /usr/bin/passwd %u

passwd chat

Esta cadena controla la conversación que tiene lugar entre smbd y el programa local de cambio de claves para cambiar la clave del usuario. La cadena describe describe una secuencia de pares respuesta-recepción que smbd usa para determinar qué enviar al programa passwd y qué espera que le devuelva. Si no se recibe la respuesta esperada entonces no se modifica la clave.

Esta secuencia chat es con frecuencia específica del sitio, dependiendo de qué métodos locales se usan para para el control de claves (como NIS+ etc).

La cadena puede contener las macros %o y %n que se sustituyen por las claves nueva y vieja respectivamente. También puede contener las macro estándar \n \r \t y \s para asignar line-feed, retorno de carro, tab y espacio.

La cadena también puede contener un * que equivale a cualquier secuencia de caracteres.

Se pueden usar comillas dobles para cadenas que contengan espacios en blanco.

Si la cadena enviada en cualquier parte de la secuencia chat es un punto final "." entonces no se envía ninguna cadena. De forma similar con la cadena esperada si es un punto y aparte entonces no se espera ningún string.

passwd chat = *ew\sUNIX\spassword* %n\n *etype* %n\n *all\sauthentication\stokens\supdated\ssuccessfully*

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

log level

El valor del parámetro (un entero) permite indicar niveles de depuración (niveles de registro) en el fichero smb.conf. Esto permite dar gran flexibilidad en la configuración del sistema.

log level = 1

log file

Esta opción permite sobreponer el nombre del fichero de registros de Samba (también conocido como debug file).

Esta opción puede tomar las sustituciones estándar, permitiéndole tener ficheros de registro separados para cada usuario de la máquina.

log file = /var/log/samba/log.%m

max log size

Esta opción (un entero en kbytes) especifica el tamaño máximo hasta el que podrá crecer el fichero de registro. Samba periódicamente comprueba el tamaño y si excede este valor lo renombra añadiendo la extensión .old.

max log size = 50

character set

Este parámetro permite a smbd aplicar los carácter de las páginas de código DOS (véase el parámetro ``client code page'') DOS en varios conjuntos de caracteres integrados en UNIX. Las traducciones de las páginas de código integradas son:

ISO8859-1 Conjunto de caracteres Europa Occidental. Este parámetro ``client code page'' tiene que ponerse a la página de código 850 si el parámetro character set está como iso8859-1 para que la conversión al conjunto de carecteres UNIX se realice correctamente.

character set = ISO8859-15

client code page

Este parámetro especifica la página de códigos base de DOS que usa el cliente que accede a Samba. Para determinar esto, abra una sesión de DOS e introduzca el comando "chcp". Esto nos indicará el código de página. El valor por defecto es para USA MS-DOS, Windows 95 y Windows NT es la página de códigos 437. El valor por defecto para Europa Occidental es la 850.

Este parámetro le dice a smbd cual de los ficheros codepage.XXX cargar dinámicamente en el arranque. Estos ficheros le dicen a smbd como aplicar carecteres de minúsculas a mayúsculas para que sean indiferentes en los nombres de ficheros que los clientes Windows esperan.

Samba actualmente viene con los siguientes ficheros de páginas de códigos:

· Página de código 437 - MS-DOS Latin US

· Página de código 737 - Windows '95 Griego

· Página de código 850 - MS-DOS Latin 1

· Página de código 852 - MS-DOS Latin 2

· Página de código 861 - MS-DOS Islandés

· Página de código 866 - MS-DOS Cirílico

· Página de código 932 - MS-DOS Japonés SJIS

· Página de código 936 - MS-DOS Chino Simplificado

· Página de códigoCode Page 949 - MS-DOS Coreano Hangul

· Página de códigoCode Page 950 - MS-DOS Chino Tradicional

Así este parámetro puede tener cualquiera de los valores 437, 737, 850, 852, 861, 932, 936, 949, o 950.

Este parámetro coopera con el parámetro ``valid chars'' para determinar qué caracteres son válidos en un nombre de fichero y como se efectúa la conversión.

logon script

Este parámetro especifica el fichero de lotes (.bat) o fichero de comandos NT (.cmd) que hay que cargar y ejecutar en una máquina cuando se conecta correctamente. El fichero debe tener el estilo de fin de línea de DOS (cr/lf). Se recomiendausar un editor estilo DOS para crear este fichero.

El script debe ser relativo al path del servicio [netlogon]. Si el servicio [netlogon] especifica un pathde /home/netlogon y logon script = STARTUP.BAT, entonces el fichero que se carga será:

/home/netlogon/STARTUP.BAT

El contenido del fichero esá enteramente a su disposición. Un comando que se sugiere que se añada es NET TIME \\SERVER /SET /YES, para forzar a cada máquina que sincronice su reloj con el del servidor.

Otro que se podría añadir sería NET USE U: \\SERVIDOR\UTILES para las utilidades de uso común, o NET USE Q: \\SERVIDOR\otrorecurso o NET USE H: /HOME para montar el directorio personal del usuario como la unidad de red H:.

Observe que es particularmente importante no permitir acceso de escritura al servicio [netlogon], o le permite a los usuarios modificar arbitrariamente los ficheros batch.

Esta opción toma las sustitucions estándar, permitiéndole tener scritps de logon separados para cada usuario o máquina utilizando %u o %m.

logon script = %U.bat

logon drive

Este parámetro especifica el path local al cual se conectarán los directorios home (vea ``logon home'') y sólo lo usan las estaciones NT Workstations.

logon drive = h:

logon home

Este parámetro especifica la ubicación del directorio home cuando se conectan estaciones Win95 o NT Workstation en un PDC Samba PDC. Esto le permite hacer "NET USE H: /HOME" desde la línea de comando, por ejemplo.

Esta opción toma las sustituciones estándar, permitiéndole tener scripts de conexión distintos para cada usuario o máquina.

logon home = \\%N\%U\profile

domain logons

Si se pone como true, el servidor Samba servirá registros de dominio a los clientes.

domain logons = Yes

preferred master

Este parámetro booleano controla si Samba es un servidor de listas principal para su grupo de trabajo. Si se pone a true, al iniciar, samba forzará una elección y tendrá una ligera ventaja para ganar la elección. Es recomendable que este parámetro se use en conjunción con ``domain master'' = yes, para que samba pueda garantizar convertirse en un ``domain master''.

Use esta opción con precaución, porque si hay varios hosts (sevidores samba, Windows 95 o NT) que son servidores de listas preferidos en la misma subred, intentarán continua y periódicamente convertirse en los principales locales. Esto ocasiona un tráfico de difusión innecesario y reduce las capacidades de las listas.

preferred master = True

domain master

Activa la comparación de lista WAN. Las listas principales locales en subredes-aisladas proporcionan a Samba sus listas locales, y solicitan una copia completa de la lista a la red amplia. Entonces las listas de clientes contactan con sus servidores locales y reciben una lista de la red amplia, en lugar de las listas de las subredes.

domain master = True

wins support

Este parámetro booleano controla si Samba actúa como servidor WINS. No debería ponerlo como true salvo que tenga una red multi-sub-red y quiera que un nmbd particular sea su servidor WINS. Tenga en cuenta que NUNCA debería poner esto como true en más de una máquina de su red.

wins support = Yes

admin users

Aquí se suministra una lista de usuarios a los que se les garantizan privilegios sobre el recurso compartido. Esto significa que realizarán todas las operaciones de ficheros como superusuario (root).

Debería usar esta opción con mucho cuidado, ya que cualquier usuario de esta lista podrá hacer cualquier cosa que quiera en el recurso, independientemente del permiso de los ficheros.

admin users = root admin

hosts allow

Este parámetro delimita por comas una lista de hosts a los que se le permite el acceso a un servicio.

Si se especifica en la sección ``[global]'' entonces se aplicará a todos los servicios independientemente de si el servicio individual tiene una configuración diferente.

Puede especificar hosts por nombre o por dirección IP. Por ejemplo, puede restringir el acceso a sólo los hosts de usa subred de clase C con algo como ``allow_hosts'' = 150.203.5..

También puede especificar host mendiante unpar red/máscara y por nombres de grupos de red, si su sistema soporta grupos de red. Se puede usar también la palabra EXCEPT para limitar una lista. El siguiente ejemplo puede proporcionar alguna ayuda:

Ejemplo 1: permite todos las IP de 150.203.*.*salvo una

hosts allow = 150.203. EXCEPT 150.203.6.66

Ejemplo 2: permite todos los hosts que verifican la red/máscara dadas:

hosts allow = 150.203.15.0/255.255.255.0

Ejemplo 3: permite unos pocos hosts

hosts allow = lapland, arvidsjaur

Ejemplo 4: permite sólo los hosts del grupo de red "foonet" o localhost, pero deniega el acceso a un host particular

hosts allow = @foonet, localhost

``hosts deny'' = pirate

hosts allow = 192.168.1. 192.168.2. 127.

os level

Este valor entero controla qué nivel anuncia Samba él mismo como para elecciones de listas.

os level=99

remote announce

Esta opción permite configurar nmbd para anunciarse periódicamente a una dirección IP arbitraria con un nombre de grupo arbitrario.

Esto es útil si quiere que su servidor Samba aparezca en un grupo de trabajo remoto para el cual no funcionan las reglas normales de propagación de listas. El grupo de trabajo remoto puede estar en cualquier sitio al que pueda mandar paquetes IP.

remote announce = 192.168.2.255

Servicio homes

Permite el uso de los directorios personales de los usuarios. Los parámetros que hemos incluido son:

comment : indica un comentario que aparece junto al recurso en los clientes.

read only: indica el modo de acceso

browseable: inidica si el recurso aparece como visible (en el entorno de red).

hide files: indica qué ficheros no se muestran en los listado de directorios. En este caso todos aquéllos que empiecen por punto.

[homes]
comment = Directorios personales
read only = No
browseable = No

hide files = /.*.*/

Servicio netlogon

Se utiliza para contener los ficheros .bat o .cmd que se ejecutarán automáticamente en la máquina cliente al iniciar una conexión.

path: indica la ruta del directorio asociado al servicio.

guest ok: indica que admite usuarios invitados.

[netlogon]
comment = Network Logon Service
path = /home/netlogon
read only = No
guest ok = Yes

Según la configuración que hemos establecido (logon script) ejecutará un fichero bat por cada usuario y en tendremos que crearlos en este directorio. Lo más cómodo es crear un fichero base y poner el resto de los script como enlaces simbólicos a este fichero base, simpre claro que todos vayan a ejecutar el mismo. Si alguno tuviera que ejecutar una secuencia distinta de órdenes pues lo creamos independiente.

El contenido de los ficheros bat será similar a:

net use h: /HOME
net use t: \\web\datos
net use

Servicio profiles

Este servicio indica donde se almacenan los perfiles de los usuarios. Según la configuración, se almacenará en un directorio llamado con el mismo nombre del usuario dentro de /var/perfiles.

[Profiles]
path = /var/perfiles/%U
browseable = No

Servicio printers

Este servicio indica que el servidor samba va a compartir sus impresoras.

printable: indica que el recurso corresponde a una impresora.

path: en este caso indica la ruta a un directorio de spool.

[printers]
comment = Impresoras
path = /var/spool/samba
printable = Yes
browseable = No

Directorios compartidos

Ahora especificamos los directorios en los cuales compartimos datos.

[datos]
path = /var/datos
browseable = Yes
read only = Yes
[trabajo]
path = /var/datos
browseable = Yes
read only = No

Usuarios en samba

Tendremos que crear los usuarios primero en unix:

useradd -d /var/www/direccion direccion
useradd -d /var/www/secretaria secretaria
useradd -d /var/www/publico publico

Ahora asignarle una contraseña

passwd direccion
passwd secretaria
passwd publico

Por último tendremos que crear los usuarios en samba:

smbpasswd -a direccion
smbpasswd -a secretaria
smbpasswd -a publico

Y con esto tenemos configurado el acceso mediante clientes Win32 a los directorios personales de los usuarios integrados en el árbol del servidor web apache.