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
?
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.
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
Veuillez exécuter la commande avec Sudo
:
Sudo updatedb