`updatedb` no puede abrir el archivo `mlocate.db`

`updatedb` no puede abrir el archivo `mlocate.db`

Cuando ejecuto updatedbdesde una terminal, aparece este error:

updatedb: can not open a temporary file for `/var/lib/mlocate/mlocate.db'

¿Alguna idea sobre cómo llegar updatedbal trabajo?

Respuesta1

Me doy cuenta de que esta es una publicación antigua, pero no veo esta solución en ningún otro lugar.

El problema no es el mlocate.dbarchivo, como era de esperar. Son los permisos del mlocateejecutable. Esto solucionará el problema:

sudo chmod 2755 /usr/bin/mlocate

Esta es la fuente del problema:

$ ls -lathr /usr/bin/mlocate
-rwxRXrx 1 raíz mlocate 39K 17 de noviembre de 2014 /usr/bin/mlocate

Necesita un setuidpoco en el grupo para poder ejecutar el locatecomando sin sudo. Una vez que se solucione, su lssalida debería verse así:

$ ls -lathr /usr/bin/mlocate
-rwxrsrx 1 raíz mlocate 39K 17 de noviembre de 2014 /usr/bin/mlocate

Simplemente hacer chmodlo que otros recomiendan contra el dbarchivo en sí solo funcionará hasta la próxima vez que alguien lo ejecute updatedb. Entonces se restablecerán los permisos.

Respuesta2

Para mí, después de las actualizaciones de Ubuntu 14, seguí recibiendo

$ locate chruby
locate: can not open `/var/lib/mlocate/mlocate.db': Permission denied

por lo que el problema no era ampliar los permisos de lectura en ese archivo, a diferencia de lo que dicen otras respuestas.

Mi "usuario no root" esmaestro. Así comoraízAgregué ese usuario al grupo.localizar:

# addgroup master mlocate

Después de enumerar los detalles de ese directorio para ver las propiedades:

# ls -al /var/lib/mlocate
drwxr-xr-x  2 root root        4096 Jun 19 13:21 ./
drwxr-xr-x 94 root root        4096 Jan 23 11:27 ../
-rw-r-----  1 root mlocate 50134121 Jun 19 13:21 mlocate.db

Respuesta3

Ejecute el comando con sudo:

sudo updatedb

Respuesta4

Lea man updatedby aprenda cómo escribir updatedbla salida de en otro lugar, en un directorio para el que tenga permiso de escritura.

información relacionada