Usando Samba - Aprendiendo a usar el Fichero de Configuración de Samba
20 de Febrero de 2006
Unix
Aquí tienes un ejemplo de fichero de configuración de Samba. Si ya has trabajado con los ficheros .INI de Windows, la estructura del fichero smb.conf te resultará familiar:
[global] log level = 1 max log size = 1000 socket options = TCP_NODELAY IPTOS_LOWDELAY guest ok = no [homes] browseable = no map archive = yes [printers] path = /usr/tmp guest ok = yes printable = yes min print space = 2000 [test] browseable = yes read only = yes guest ok = yes path = /export/samba/test
Aunque no puedas comprender todavía los contenidos, este es un buen fichero de configuración para usar en caso de problemas. Este fichero de configuración establece un nivel de debug (control de errores/avisos) básico que no excederá de 1MB, optimiza el socket de conexiones TCP/IP entre el servidor Samba y cualesquiera clientes SMB, y permite a Samba crear un disco compartido para cada usuario que tenga una cuenta estándar Unix en el servidor. En adición, cada una de las impresoras registradas en el servidor están disponibles públicamente, y además existe un recurso de acceso libre (pero sólo lectura) que mapea el directorio /export/samba/test. La última parte de éste fichero es similar a la de compartición de disco que ya usamos para testear Samba en el Capítulo 2, Instalando Samba sobre un Sistema Unix.
Estructura del Fichero de Configuración
Echemos otro vistazo al fichero de configuración, esta vez a un nivel más general:
[global] ... [homes] ... [printers] ... [test] ...
Los nombres encerrados entre corchetes delimitan secciones únicas del fichero smb.conf file; cada nombre de sección denomina al recurso (o servicio) a la que ser refiere la sección. Por ejemplo, las secciones [test] y [homes] son cada una de ellas comparticiones de disco únicas; contienen opciones que mapean a directorios específicos del servidor Samba. La sección [printers] contiene opciones que mapean a varias impresoras del servidor. Todas las secciones definidas en el fichero smb.conf, con la excepción de la sección [global], estarán disponibles como discos o impresoras compartidas para los clientes del servidor Samba.
El resto de líneas son opciones individuales de configuración para cada recurso. Estas opciones continuarán hasta que se encuentre una nueva sección rodeada entre corchetes, o hasta el final del fichero. Cada opción de configuración sigue un formato muy simple:
opción = valor
Las opciones en el fichero smb.conf son configuradas asignándoles una valor. Debemos advertirte de que algunos de los nombres escogidos para las opciones son muy poco explicatorios de su función.Por ejemplo, read only se explica por sí solo public es una vieja opción, y es de definición vaga; ahora tiene una menos confusa sinónima en guest ok (puede ser accedida por invitados). Describimos algunos de los nombres más comunes en éste capítulo. En adición, el Apéndide C, Referencia Rápida de Opciones de Configuración de Samba, contiene un índice alfabético de todas las opciones de configuración y su significado.
Espacios en Blanco, Comillas y Comas
Algo importante a recordar sobre las opciones de configuración es que todos los espacios en blanco en la parte del valor son significativos. Por ejemplo, considera la siguiente opción:
volume = The Big Bad Hard Drive Number 3543
Samba desprecia los espacios entre la e final de volume y la primera T en The. Son no significativos. El resto de espacios son significativos y serán reconocidos y preservados por Samba cuando lea el fichero. Los espcios no son significativos en nombres de opción (como en guest ok), pero recomendamos que sigas la convención y mantengas espacios entre las palabras que componen los nombres de opciones.
Si te sientes más cómodo encerrando el valor de una opción entre comillas, puedes hacerlo. Samba ignorará estas comillas cuando las encuentre. Pero nunca las uses para un nombre de opción; Samba las tratará como un error.
Finalmente, puedes usar espacios en blanco o comas para separar una serie de valores en una lista. Lo siguiente es igualmente válido:
netbios aliases = sales, accounting, payroll netbios aliases = sales accounting payroll
En algunos valores, sin embargo, deberás usar una forma específica de separación (o espacios o comas).
Capitalización
La capitalización no es importante en el fichero de configuración de Samba excepto en lugares donde estas podrían llevar a confusión al sistema operativo que lo aloja. Por ejemplo, asumamos que has incluido la siguiente opción en un recurso que apunta a /export/samba/simple:
PATH = /EXPORT/SAMBA/SIMPLE
Samba no tendría problemas con la opción de configuración path si esta apareciera íntegramente en mayúsculas. Sin embargo, cuando intente conectar a dicho directorio, podría fallar porque el sistema operativo Unix es sensible a mayúsculas/minúsculas. Consecuentemente, la ruta indicada podría no ser encontrada y los clientes no podrían conectar al recurso.
Continuación de Línea
Puedes continuar una línea en el fichero de configuración de Samba usando la barra o "backslash", como sigue:
comment = The first share that has the primary copies \ of the new Teamworks software product.
A consecuencia de la barra o backslash, estas dos líneas serán tratadas como una sola por Samba. La segunda línea comenzará en el primer carácter distinto de espacio en blanco que Samba encuentre; en este caso, o en off.
Comentarios
Puedes insertar comentarios en el fichero smb.conf antecediéndolos por una almohadilla (#) o por un punto y coma (;). Ambos caracteres son equivalentes. Por ejemplo, las primeras tres líneas en el siguiente ejemplo se consideran comentarios:
# This is the printers section. We have given a minimum print ; space of 2000 to prevent some errors that we've seen when ; the spooler runs out of space. [printers] public = yes min print space = 2000
Samba ignorará todas las líneas comentadas en su fichero de configuración; advierte que el símbolo barra ( \) no será tenido en cuenta como continuador de una línea comentada. Simplemente también será ignorado, como el resto de la línea. 4.1.1.5
Cambios en Tiempo de Ejecución
Puedes modificar el fichero smb.conf y cualquiera de sus opciones en cualquier momento, incluso cuando el servidor está corriendo. Por defecto, Samba chequea el fichero de configuración cada 60 segundos para saber si debe realizar cambios. Si los encuentra, los cambios son inmediatamente aplicados. Si no quieres que espere tanto, puedes forzar la recarga enviando una señal SIGHUP a los procesos smbd y nmbd, o simplemente reiniciando los demonios.
Por ejemplo, si el proceso smbd fuera el 893, podrías forzar la relectura del fichero de configuración con el siguiente comando:
# kill -SIGHUP 893
Advierte que NO TODOS los cambios serán inmediatamente reconocidos por los clientes. Por ejemplo, los cambios sobre un recurso que está actualmente en uso no serán registrados hasta que el cliente desconecte y reconecte de nuevo al recurso. En adición, los parámetros específicos del servidor, tales como el nombre de grupo de trabajo o el nombre NetBIOS del servidor no serán regsitrados inmediatamente. Así se evitan problemas con las conexiones actuales de los clientes mientras existen sesiones abiertas.
Samba incluye un completo juego de variables para determinar las características del servidor Samba y de los clientes a los cuales conecta. Cada una de estas variables comienza con un símbolo de porcentaje (%), seguido por un único carácter minúscula o mayúscula, y puede ser usada sólo en la parte del valor de una opción de configuración (p.ej., después del signo igual):
[pub] path = /home/ftp/pub/%a
La variable %a contiene como valor la arquitectura de la máquina cliente (p.ej. WinNT para Windows NT, Win95 para Windows 95 o 98, o WfWg para Windows para Trabajo en Grupos). A consecuencia de esto, Samba asignará una ruta única para el recurso [pub] para las máquinas clientes que corran Windows NT, una diferente para las máquinas clientes que corran Windows 95, y otra para Windows para Trabajo en Grupo. En otras palabras, las rutas que cada cliente podrá ver serán diferentes, en función de la arquitectura de los clientes, como sigue:
/home/ftp/pub/WinNT /home/ftp/pub/Win95 /home/ftp/pub/WfWg
El uso de variables de esta forma es útil si tienes diferentes clientes corriendo diversas plataformas y deseas crear configuraciones en función de las mismas. Samba tiene 19 variables, que ves en la Tabla 4.1.
Table: Variables de Samba.|| Table: Variables de Samba.|| Variable || Definición || || Relativas a Clientes || || || %a || Arquitectura de Cliente (p.ej., Samba, WfWg, WinNT, Win95, o UNKNOWN) || || %I || Dirección IP de Cliente (p.ej., 192.168.220.100) || || %m || Nombre NetBIOS de Cliente || || %M || Nombre DNS de Cliente || || Relativas a Usuarios || || || %g || Grupo Primario de %u || || %G || Grupo Primario de %U || || %H || Directorio "home" de %u || || %u || Actual nombre usuario Unix || || %U || Nombre de usuario (no siempre usado por Samba) || || Relativas a Recursos || || || %p || Automontador de ruta para el recurso, si difiere de %P || || %P || Actual directorio root del recurso || || %S || Actual nombre del recurso || || Relativas a Servidor || || || %d || Actual PID de servidor || || %h || nombre DNS de máquina del servidor Samba || || %L || Nombre NetBIOS del servidor Samba || || %N || Directorio "home" del servidor, desde el mapa automount || || %v || Versión de Samba || || Varias || || || %R || Nivel de protocolo SMB que se ha negociado || || %T || Fecha y hora actual || ||
Aquí tienes otro ejemplo del uso de variables: digamos que hay 5 clientes en tu red, pero uno de ellos, fred, requirere un configuración de [homes] algo diferente al resto cuando conecta al servidor Samba. Con Samba, esto tiene fácil solución:
[homes] ... include = /usr/local/samba/lib/smb.conf.%m ...
La opción include aquí provoca un fichero de configuración separado para cada máquina NetBIOS (%m), que será leído en adición al fichero actual. Si el nombre de host de la máquina cliente es fred, y el fichero smb.conf.fred existe en el directorio samba_dir /lib/ directory (o el que hayas especificado en tu configuración), Samba insertará ese fichero de configuración en el genérico smb.conf. Si alguna opción de configuración existe en ambos ficheros, esos valores serán redefinidos por la configuración del fichero particular de cada usuario. Pero OJO. Si cualesquiera opción tras la opción include vuelve a ser redefinida en el fichero de configuración principal, Samba volverá a redefinir su valor. Es decir, siempre prevalece lo último.
Algo importante: si no existe el fichero particular de usuario, Samba NO generará error. De hecho, no hará nada. Esto te va a permitir el poder crear un fichero de configuración extra sólo para fred, en lugar de tener que crear uno para cada máquina NetBIOS de la red.
Los ficheros de configuración específicos de una máquina pueden ser usados tanto para optimizar la configuración de determinados clientes como para hacer el control de errores de Samba más sencillo. Considera lo último; si tenemos un cliente con un problema, podemos usar esta técnica para asignarle un nivel de depuración de errores mayor y dirigir la salida a un fichero de registro particular para esa máquina. Esto nos permitirá ver qué está haciendo Samba sin que afecte al resto de clientes o sobrecargar el disco con grabaciones de registros de sucesos de todo el mundo. Recuerda, ¡En grandes redes puede que no tengas siempre la posibilidad de reiniciar el servidor Samba para operaciones de depuración!
Puedes usar las variables de la Tabla 4.1 para asignar valores a una gran variedad de opciones de Samba. Remarcaremos algunas de ellas a medida que avancemos en los próximos capítulos.
[global] log level = 1 max log size = 1000 socket options = TCP_NODELAY IPTOS_LOWDELAY guest ok = no [homes] browseable = no map archive = yes [printers] path = /usr/tmp guest ok = yes printable = yes min print space = 2000 [test] browseable = yes read only = yes guest ok = yes path = /export/samba/test
Aunque no puedas comprender todavía los contenidos, este es un buen fichero de configuración para usar en caso de problemas. Este fichero de configuración establece un nivel de debug (control de errores/avisos) básico que no excederá de 1MB, optimiza el socket de conexiones TCP/IP entre el servidor Samba y cualesquiera clientes SMB, y permite a Samba crear un disco compartido para cada usuario que tenga una cuenta estándar Unix en el servidor. En adición, cada una de las impresoras registradas en el servidor están disponibles públicamente, y además existe un recurso de acceso libre (pero sólo lectura) que mapea el directorio /export/samba/test. La última parte de éste fichero es similar a la de compartición de disco que ya usamos para testear Samba en el Capítulo 2, Instalando Samba sobre un Sistema Unix.
Estructura del Fichero de Configuración
Echemos otro vistazo al fichero de configuración, esta vez a un nivel más general:
[global] ... [homes] ... [printers] ... [test] ...
Los nombres encerrados entre corchetes delimitan secciones únicas del fichero smb.conf file; cada nombre de sección denomina al recurso (o servicio) a la que ser refiere la sección. Por ejemplo, las secciones [test] y [homes] son cada una de ellas comparticiones de disco únicas; contienen opciones que mapean a directorios específicos del servidor Samba. La sección [printers] contiene opciones que mapean a varias impresoras del servidor. Todas las secciones definidas en el fichero smb.conf, con la excepción de la sección [global], estarán disponibles como discos o impresoras compartidas para los clientes del servidor Samba.
El resto de líneas son opciones individuales de configuración para cada recurso. Estas opciones continuarán hasta que se encuentre una nueva sección rodeada entre corchetes, o hasta el final del fichero. Cada opción de configuración sigue un formato muy simple:
opción = valor
Las opciones en el fichero smb.conf son configuradas asignándoles una valor. Debemos advertirte de que algunos de los nombres escogidos para las opciones son muy poco explicatorios de su función.Por ejemplo, read only se explica por sí solo public es una vieja opción, y es de definición vaga; ahora tiene una menos confusa sinónima en guest ok (puede ser accedida por invitados). Describimos algunos de los nombres más comunes en éste capítulo. En adición, el Apéndide C, Referencia Rápida de Opciones de Configuración de Samba, contiene un índice alfabético de todas las opciones de configuración y su significado.
Espacios en Blanco, Comillas y Comas
Algo importante a recordar sobre las opciones de configuración es que todos los espacios en blanco en la parte del valor son significativos. Por ejemplo, considera la siguiente opción:
volume = The Big Bad Hard Drive Number 3543
Samba desprecia los espacios entre la e final de volume y la primera T en The. Son no significativos. El resto de espacios son significativos y serán reconocidos y preservados por Samba cuando lea el fichero. Los espcios no son significativos en nombres de opción (como en guest ok), pero recomendamos que sigas la convención y mantengas espacios entre las palabras que componen los nombres de opciones.
Si te sientes más cómodo encerrando el valor de una opción entre comillas, puedes hacerlo. Samba ignorará estas comillas cuando las encuentre. Pero nunca las uses para un nombre de opción; Samba las tratará como un error.
Finalmente, puedes usar espacios en blanco o comas para separar una serie de valores en una lista. Lo siguiente es igualmente válido:
netbios aliases = sales, accounting, payroll netbios aliases = sales accounting payroll
En algunos valores, sin embargo, deberás usar una forma específica de separación (o espacios o comas).
Capitalización
La capitalización no es importante en el fichero de configuración de Samba excepto en lugares donde estas podrían llevar a confusión al sistema operativo que lo aloja. Por ejemplo, asumamos que has incluido la siguiente opción en un recurso que apunta a /export/samba/simple:
PATH = /EXPORT/SAMBA/SIMPLE
Samba no tendría problemas con la opción de configuración path si esta apareciera íntegramente en mayúsculas. Sin embargo, cuando intente conectar a dicho directorio, podría fallar porque el sistema operativo Unix es sensible a mayúsculas/minúsculas. Consecuentemente, la ruta indicada podría no ser encontrada y los clientes no podrían conectar al recurso.
Continuación de Línea
Puedes continuar una línea en el fichero de configuración de Samba usando la barra o "backslash", como sigue:
comment = The first share that has the primary copies \ of the new Teamworks software product.
A consecuencia de la barra o backslash, estas dos líneas serán tratadas como una sola por Samba. La segunda línea comenzará en el primer carácter distinto de espacio en blanco que Samba encuentre; en este caso, o en off.
Comentarios
Puedes insertar comentarios en el fichero smb.conf antecediéndolos por una almohadilla (#) o por un punto y coma (;). Ambos caracteres son equivalentes. Por ejemplo, las primeras tres líneas en el siguiente ejemplo se consideran comentarios:
# This is the printers section. We have given a minimum print ; space of 2000 to prevent some errors that we've seen when ; the spooler runs out of space. [printers] public = yes min print space = 2000
Samba ignorará todas las líneas comentadas en su fichero de configuración; advierte que el símbolo barra ( \) no será tenido en cuenta como continuador de una línea comentada. Simplemente también será ignorado, como el resto de la línea. 4.1.1.5
Cambios en Tiempo de Ejecución
Puedes modificar el fichero smb.conf y cualquiera de sus opciones en cualquier momento, incluso cuando el servidor está corriendo. Por defecto, Samba chequea el fichero de configuración cada 60 segundos para saber si debe realizar cambios. Si los encuentra, los cambios son inmediatamente aplicados. Si no quieres que espere tanto, puedes forzar la recarga enviando una señal SIGHUP a los procesos smbd y nmbd, o simplemente reiniciando los demonios.
Por ejemplo, si el proceso smbd fuera el 893, podrías forzar la relectura del fichero de configuración con el siguiente comando:
# kill -SIGHUP 893
Advierte que NO TODOS los cambios serán inmediatamente reconocidos por los clientes. Por ejemplo, los cambios sobre un recurso que está actualmente en uso no serán registrados hasta que el cliente desconecte y reconecte de nuevo al recurso. En adición, los parámetros específicos del servidor, tales como el nombre de grupo de trabajo o el nombre NetBIOS del servidor no serán regsitrados inmediatamente. Así se evitan problemas con las conexiones actuales de los clientes mientras existen sesiones abiertas.
Variables
Samba incluye un completo juego de variables para determinar las características del servidor Samba y de los clientes a los cuales conecta. Cada una de estas variables comienza con un símbolo de porcentaje (%), seguido por un único carácter minúscula o mayúscula, y puede ser usada sólo en la parte del valor de una opción de configuración (p.ej., después del signo igual):
[pub] path = /home/ftp/pub/%a
La variable %a contiene como valor la arquitectura de la máquina cliente (p.ej. WinNT para Windows NT, Win95 para Windows 95 o 98, o WfWg para Windows para Trabajo en Grupos). A consecuencia de esto, Samba asignará una ruta única para el recurso [pub] para las máquinas clientes que corran Windows NT, una diferente para las máquinas clientes que corran Windows 95, y otra para Windows para Trabajo en Grupo. En otras palabras, las rutas que cada cliente podrá ver serán diferentes, en función de la arquitectura de los clientes, como sigue:
/home/ftp/pub/WinNT /home/ftp/pub/Win95 /home/ftp/pub/WfWg
El uso de variables de esta forma es útil si tienes diferentes clientes corriendo diversas plataformas y deseas crear configuraciones en función de las mismas. Samba tiene 19 variables, que ves en la Tabla 4.1.
Table: Variables de Samba.|| Table: Variables de Samba.|| Variable || Definición || || Relativas a Clientes || || || %a || Arquitectura de Cliente (p.ej., Samba, WfWg, WinNT, Win95, o UNKNOWN) || || %I || Dirección IP de Cliente (p.ej., 192.168.220.100) || || %m || Nombre NetBIOS de Cliente || || %M || Nombre DNS de Cliente || || Relativas a Usuarios || || || %g || Grupo Primario de %u || || %G || Grupo Primario de %U || || %H || Directorio "home" de %u || || %u || Actual nombre usuario Unix || || %U || Nombre de usuario (no siempre usado por Samba) || || Relativas a Recursos || || || %p || Automontador de ruta para el recurso, si difiere de %P || || %P || Actual directorio root del recurso || || %S || Actual nombre del recurso || || Relativas a Servidor || || || %d || Actual PID de servidor || || %h || nombre DNS de máquina del servidor Samba || || %L || Nombre NetBIOS del servidor Samba || || %N || Directorio "home" del servidor, desde el mapa automount || || %v || Versión de Samba || || Varias || || || %R || Nivel de protocolo SMB que se ha negociado || || %T || Fecha y hora actual || ||
Aquí tienes otro ejemplo del uso de variables: digamos que hay 5 clientes en tu red, pero uno de ellos, fred, requirere un configuración de [homes] algo diferente al resto cuando conecta al servidor Samba. Con Samba, esto tiene fácil solución:
[homes] ... include = /usr/local/samba/lib/smb.conf.%m ...
La opción include aquí provoca un fichero de configuración separado para cada máquina NetBIOS (%m), que será leído en adición al fichero actual. Si el nombre de host de la máquina cliente es fred, y el fichero smb.conf.fred existe en el directorio samba_dir /lib/ directory (o el que hayas especificado en tu configuración), Samba insertará ese fichero de configuración en el genérico smb.conf. Si alguna opción de configuración existe en ambos ficheros, esos valores serán redefinidos por la configuración del fichero particular de cada usuario. Pero OJO. Si cualesquiera opción tras la opción include vuelve a ser redefinida en el fichero de configuración principal, Samba volverá a redefinir su valor. Es decir, siempre prevalece lo último.
Algo importante: si no existe el fichero particular de usuario, Samba NO generará error. De hecho, no hará nada. Esto te va a permitir el poder crear un fichero de configuración extra sólo para fred, en lugar de tener que crear uno para cada máquina NetBIOS de la red.
Los ficheros de configuración específicos de una máquina pueden ser usados tanto para optimizar la configuración de determinados clientes como para hacer el control de errores de Samba más sencillo. Considera lo último; si tenemos un cliente con un problema, podemos usar esta técnica para asignarle un nivel de depuración de errores mayor y dirigir la salida a un fichero de registro particular para esa máquina. Esto nos permitirá ver qué está haciendo Samba sin que afecte al resto de clientes o sobrecargar el disco con grabaciones de registros de sucesos de todo el mundo. Recuerda, ¡En grandes redes puede que no tengas siempre la posibilidad de reiniciar el servidor Samba para operaciones de depuración!
Puedes usar las variables de la Tabla 4.1 para asignar valores a una gran variedad de opciones de Samba. Remarcaremos algunas de ellas a medida que avancemos en los próximos capítulos.
Valora este capítulo:
Autor y licencia de 'Usando Samba - Aprendiendo a usar el Fichero de Configuración de Samba'
|
Opiniona sobre 'Usando Samba - Aprendiendo a usar el Fichero de Configuración de Samba' (10)
Tu nombre debe tener tres caracteres como mínimo.
Es necesario que te des de alta con una cuenta de correo válida.
Es necesario que te des de alta con una cuenta de correo válida.
El contenido del título de tu opinión debe tener tres caracteres como mínimo.
Es obligatorio que selecciones una valoración del recurso.
El contenido del comentario de tu opinión debe tener tres caracteres como mínimo.
Opina sobre este tutorial |
Wikis relacionados con 'Usando Samba - Aprendiendo a usar el Fichero de Configuración de Samba'
El principal objetivo de este documento es lograr que el lector adquiera la capacidad de...
Más »
Todo lo que aquí se cuenta se ha probado en una Madrake 9.0 con SAMBA...
Más »
Este documento describe cómo usar el sistema de spooling para impresoras de líneas que provee...
Más »
Samba es una implementación bajo Unix de los protocolos CIFS (Common Internet File System -...
Más »
