web-dev-qa-db-fra.com

`updatedb` ne peut pas ouvrir le fichier` mlocate.db`

Lorsque je lance updatedb depuis un terminal, le message d'erreur suivant s'affiche:

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

Des idées sur la façon de faire fonctionner updatedb?

2
Ken Sandoval

Je me rends compte que c'est un vieux post, mais je ne vois pas cette solution ailleurs.

Le problème n’est pas le fichier mlocate.db, comme on peut s’y attendre. Ce sont les autorisations sur l'exécutable mlocate. Cela résoudra le problème:

Sudo chmod 2755 /usr/bin/mlocate

C'est la source du problème:

$ ls -lathr/usr/bin/mlocate 
 - rwxr-xr-x 1 racine mlocate 39K 17 novembre 2014/usr/bin/mlocate

Vous avez besoin d'un bit setuid sur le groupe pour pouvoir exécuter la commande locate sans Sudo. Une fois corrigé, votre sortie ls devrait ressembler à ceci:

$ ls -lathr/usr/bin/mlocate 
 - rwxr-sr-x 1 racine mlocate 39K 17 novembre 2014/usr/bin/mlocate

Il suffit de faire un chmod comme le recommandent d’autres le fichier db lui-même ne fonctionnera que jusqu’à la prochaine fois que quelqu'un exécutera updatedb. Ensuite, les autorisations seront réinitialisées.

3
Chris Hubbard

Pour moi, après les mises à jour d'Ubuntu 14, je continuais à recevoir

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

il ne s'agissait donc pas d'élargir les autorisations de lecture sur ce fichier, contrairement à d'autres réponses.

Mon "non-root utilisateur" est maître. Donc en tant que root j'ai ajouté cet utilisateur au groupe mlocate:

# addgroup master mlocate

Après avoir répertorié les détails de ce répertoire pour voir les propriétaires:

# 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
2
Marcos

Veuillez exécuter la commande avec Sudo:

Sudo updatedb
2
chili555