Como configurar samba para bases de datos en Access

La primera vez que intenté compartir una base de datos en Access me resultó de lo más complicado. Tuve que releerme varias veces el libro Using Samba, lo bueno es que esta disponible en varios formatos. En español (PDF) o si lo prefieren en ingles (html) y hacer búsquedas extensivas en los grupos de google. Pocas personas buscan ahí, pero se puede conseguir información muy valiosa.
El problema. Cuando uno abre una base de datos en Access ( .mdb) inmediatamente se crea un archivo de bloqueos con la extensión .ldb ( Record-locking information ), en Winbugs no hay problema, pero en Linux es un poco distinto. El problema son los permisos en el sistema de archivos de Linux y como se manejan con samba. Me explico:
Usualmente si uno pone una base de datos en un directorio compartido es para que 2 o más usuarios tengan acceso a él.
Por ejemplo, El usuario A abre la base de datos y por ende se crea un archivo con la extensión .lbd pero ese archivo se crea con el nombre y grupo del usuario de A, cuando llega el usuario B e intenta abrir la base de datos, se da cuenta de que ya existe un archivo .ldb creado y que no puede escribir en él, por lo tanto al usuario B se le concede abrir la base de datos pero en modo de solo lectura, para que el usuario B pudiera escribir en la base de datos ambos tendrían que cerrar el archivo .mdb para luego abrirlo el usuario B. Un panorama poco práctico para 2 usuarios imagínense cuando son más.
La solución. La solución esta en los permisos del sistema de archivos de Linux y configurar samba para crear archivos con permisos especiales, pero vámonos por pasos.
1. Crear un grupo de usuarios. No voy a explicar como crear un grupo de usuarios, en Linux hay herramientas que simplifican esta labor, a mi en lo personal me gusta usar webmin. como parte del ejemplo el nombre del grupo que vamos a crear será msaccess .
2. Agregar usuarios al grupo. Vamos creo que ya se presentían esto … pues si será necesario agregar a nuestros usuarios A y B como integrantes del grupo msaccess .
3. Modificar los permisos del directorio compartido. Nuestra base de datos vivirá feliz en su directorio, para este caso será /home/db y aplicamos los siguientes comandos.
chgrp msaccess /home/db
chmod 770 /home/db
al darle ls -l al directorio debe de quedar mas o menos así.
drwxrwx— 2 root msaccess 144 may 13 18:30 db/
4. Modificar los permisos de los archivos en el directorio. Si ya tenemos archivos en el directorio será necesario ajustar los permisos. con los siguientes comandos.
chgrp msaccess /home/db/.
chmod 770 /home/db/.
para quedar más o menos así:
-rwxrwx— 1 root msaccess 1302528 may 13 18:35 sistema.mdb*
5. Configurar samba. En la parte de shares, hay que tener especial cuidado en los últimos 3 renglones son la clave.
[basesdedatos]
comment = Sistemas de bases de datos en access
path = /home/db
valid users = a, b
read list = a, b
write list = a, b
force group = msaccess
force create mode = 0660
force directory mode = 0770
De esta forma la creación del archivo .lbd permite la escritura a los miembros del grupo msaccess.
Con eso debe de funcionar todo de maravilla. Espero que este post les sea útil.
Archivado en: Linux y Software Libre, Bug Hunter | | May 14, 2005
Agregar a del.icio.us |





# 1 | Hasgonz
May 16, 2005 @ 1:41 pm