Ir al contenido

13 mayo, 2011

Problema al utilizar locate en Ubuntu

Esta mañana, al intentar una búsqueda con el comando locate de unos archivos que sabía que están en mi /home no recibía ningún resultado como respuesta. La base de datos estaba creada correctamente en /var/lib/mlocate/mlocate.db y la búsqueda sí devolvía resultados para archivos fuera de mi /home. Lógicamente ejecuté el comando updatedb, pero tampoco funcionaba.

Revisé la configuración en /etc/updatedb.conf y encontré que tenía el siguiente contenido:

PRUNE_BIND_MOUNTS="yes"
# PRUNENAMES=".git .bzr .hg .svn"
PRUNEPATHS="/tmp /var/spool /media"
PRUNEFS="NFS nfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs shfs sysfs cifs lustre_lite tmpfs usbfs udf fuse.glusterfs fuse.sshfs curlftpfs ecryptfs fusesmb devtmpfs"

Contenido que, a priori, es correcto para que indexe mi /home, dado que no está dentro de los PATH a ignorar y está formateado con ext4. Como aclaración, lo que hacen las variables PRUNEPATHS y PRUNEFS es indicar que no indexe los directorios listados ni los filesystems especificados, respectivamente.

Ahora bien, al chequear las particiones montadas en mi sistema me encontré con lo siguiente:

leandro@scarlet:~$ mount
/dev/sda3 on / type ext4 (rw,errors=remount-ro,commit=0)
/dev/sda5 on /home type ext4 (rw,commit=0)
/home/leandro/.Private on /home/leandro type ecryptfs (ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs,ecryptfs_sig=3c4c274e018dcd1d,ecryptfs_fnek_sig=8b78ca14201c02d2)

En ese momento recordé que al instalar Ubuntu había indicado que cifre mi carpeta personal y de ahí el problema, que se ve en la tercer línea. Al cifrar mi /home en Ubuntu se creó una carpeta que se llama /home/.ecryptfs/leandro, donde están realmente los datos de mi /home encriptados (/home/leandro/.Private en realidad es un link simbólico a /home/.ecryptfs/leandro). Ese directorio, al iniciar sesión, se monta bajo /home/leandro con ecryptfs como tipo de sistema de archivos. Precisamente por eso no funciona el comando locate. Lo que hay que hacer es simplemente quitar ecryptfs de la variable PRUNEFS y luego ejecutar updatedb.

Posts relacionados:

¿Qué opinas?, introduce un comentario.

Debes ser conectado para comentar.