Vamos a ver, en breve, opciones que nos permitiran dar soporte a programadores, internalizacion, como mandar mensajes y solucionar bugs tipicos de sistemas Windows. La mayoria de los casos, estas opciones solo las usaremos en contadas ocasiones. Tambien cubriremos el como hacer copias de seguridad con smbtar, asi como la automatizacion de este proceso, pero eso sera al final del capitulo. Asi que, sin mas preambulos, vayamos al primer punto...
Dando soporte a Programadores
Si disponemos de un servidor Samba, al que tengan acceso programadores, son de especial interes las opcienes listadas en la siguiente relacion:
Table: Opciones de Configuración de Programadores.|| Opción || Parámetros || Función || Defecto || Alcance ||
|| Time Server || Boolean || Si esta activada, nmbd, se presenta a si mismo como un servicio de tiempo SMB para clientes Windows. || No || Global ||
|| Time Offset || Numericos (numero de minutos) || Añade un determinado numero de minutos al tiempo mostrado. || || Global ||
|| Dos Filetimes || Boolean || Permite que usuarios que no sean propietarios de un archivo, le puedan cambiar el valor del tiempo, la fecha, siempre que tengan permiso para escribir sobre él. || No || Share ||
|| Dos Filetime Resolution || Boolean || Hace que el tiempo de un archivo, se redondee al siguiente segundo. || No || Share ||
|| Fake Directory Create Times || Boolean || Fija los tiempos de directorio para evitar posibles bugs o fallos provocados por Microsoft nmake || No || Share ||
Sincronizando el Tiempo
La sincronizacion del tiempo puede ser muy importante para un programador. Consideremos las siguientes acciones:
time service=yes
dos filetimes=yes
fake directory create times=yes
dos filetimes resolution=yes
delete readonly=yes
Si establecemos estas opciones afirmativamente (como se puede ver arriba), las comparticiones Samba proveeran el tipo de ficheros de tiempo que visual C++, nmake y otras aplicaciones Microsoft requieren para poder programar con ellas.
De no hacer esto, los programas de tipo PC Make tenderan a pensar que todos los ficheros en un determinado directorio han de ser recompilados a cada momento. Evidentemente, este no es el tipo de resultado, de conducta, que nosotros esperamos y queremos de este tipo de programas.
time server
Si nuestro servidor Samba dispone de un reloj preciso, o si ese servidor es un cliente a su vez de alguno de los servidores de tiempo UNIX de la Red, podemos "instruirlo" para que se identifique a si mismo como un servidor de tiempo SMB. Esto se puede hacer fijando la opcion time service de la forma:
[global]
time service=yes
Una vez hecho esto, desde el cliente DOS, hemos de pedirle al servidor el tiempo correcto, lo que haremos poniendo en una linea de comandos del DOS el siguiente comando:
c:\>NET TIME
\\server /YES /SET
Donde Server es el nombre, naturalmente, de nuestro servidor Samba. Luego, para no tener que repetir este proceso en cada inicio de un cliente Windows, podemos meter este comando en alguno de los sripts de inicio de Windows (Para mas informacion, ver capitulo 6, Usuarios, Seguridad y Dominios).
Por defecto, nos encontraremos con que esta opcion se encuentra desactivada. Si activamos este servicio, podremos usar el anterior comando para conseguir que los relojes de los clientes no vayan a la deriva.
La sincronizacion del tiempo es muy importante para clientes que usen programas del tipo make, que compila en base al tiempo en el que fue modificado por ultima vez el fichero. Una sincronizacion incorrecta de tiempos puede causar que este tipo de programas "rehaga" todos los archivos que se encuentren en ese directorio, lo que desperdicia tiempo, o lo que es peor, podria no compilar un fichero en codigo fuente que fuese modificado, a causa de un leve error en el reloj.
time offset
Para tratar clientes que no procesen adecuadamente el tiempo del dia que es, es decir, clientes que no sepan la franja horaria que ocupan, de forma adecuada, Samba nos ofrece la opcion time offset. Si esta activada esta opción, lo que hace es añadir un numero especifico de minutos al tiempo actual del sistema. Esto seria muy util si nos encontrasemos, por ejemplo, en el caso del pais Newland, y Windows no reconociese los 30 minutos de diferencia con la franja horaria mas crecana, entonces hariamos lo siguiente:
[global]
time offset=30
dos filetimes
Normalmente en un sistema UNIX, tan solo el superusuario (root) y el dueño de un fichero, pueden modificar la fecha en la que fue modificado el fichero por ultima vez.
La opcion, a nivel de comparticion, dos filetimes permite a nuestro servidor Samba imitar las caracteristicas de un sistema DOS/Windows, es decir, cualquier usuario podra modificar la fecha de la ultima modificacion hecha a un archivo dentro de una comparticion, siempre y cuando tenga permiso de escritura sobre ese fichero. Para poder hacer esto, Samba usa sus privilegios de root para modificar el registro de tiempo del fichero.
Por defecto, esta opcion esta desactivada. Deberiamos de activarla para que programas del tipo PC make, citados anteriormente, funcionasen correctamente. Si se encontrase desactivada, este tipo de programas no podrian cambiar la fecha de la ultima modificacion por si mismos. Esto suele resultar en que el programa "piensa" que ha de compilar todos los ficheros, incluso los que no necesitan ser compilados.
dos filetime resolution
dos filetime resolution es una opcion a nivel de comparticion de Samba. Si la acivamos, Samba se las arreglará para redondear la fecha del fichero a la frontera dos segundos mas cercana. Esta opcion sirve principalmente para satisfacer un 'quirk' en Windows que prevenga al lenguaje Visual C++ para que reconozca debidamente, si un fichero ha cambiado, es decir, si ese fichero ha sido modificado. Podemos activar esta opcion de la siguiente forma:
[data]
dos filetime resolution=yes
Es recomendable usar esta opcion si vamos a usar Microsoft Visual C++ en una comparticion Samba que soporte bloqueos eventuales.
fake directory create times
Esta opcion existe para mantener a los programas del tipo PCMake "sanos", es decir, de protegerlos de posible eventualidades. Los sistemas de archivos VFAT y NTFS guardan la fecha de creacion de un directorio,mientras que los sistemas UNIX no lo hacen.
Sin esta opcion, Samba coge la fecha mas reciente que tiene, la ultima fecha de la que hay constancia que se ha modificado algo en algun fichero, o se ha agregado algun fichero, y devuelve dicha fecha al cliente.
Si esto no fuese suficiente, debemos de poner la opcion siguiente, bajo una comparticion:
[data]
fake directory create times=yes
Al activar esta opcion, Samba ajustara la fecha de creacion del directorio que ha de pasar al cliente, en la fecha 1 de enero de 1980. Esto sirve basicamente, para convencer al nmake del lenguaje Visual C++ de que cualquier fichero que se encuentre dentro de un directorio es realmente mas reciente que la fecha de creacion del directorio que lo contiene, y que entonces ha de ser compilado.