Cuando ejecuto updatedb
desde una terminal, aparece este error:
updatedb: can not open a temporary file for `/var/lib/mlocate/mlocate.db'
¿Alguna idea sobre cómo llegar updatedb
al 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.db
archivo, como era de esperar. Son los permisos del mlocate
ejecutable. 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 setuid
poco en el grupo para poder ejecutar el locate
comando sin sudo
. Una vez que se solucione, su ls
salida 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 chmod
lo que otros recomiendan contra el db
archivo 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 updatedb
y aprenda cómo escribir updatedb
la salida de en otro lugar, en un directorio para el que tenga permiso de escritura.