La commande locate
est un outil très utile sur Linux, mais il semble que la root peut exécuter la commande updatedb
qui est très non convoquée pour l'utiliser. Comment rendre l'utilisateur ordinaire à avoir le privilège d'exécuter la commande mises à jour?
updatedb
est la commande utilisée pour mettre à jour la DB utilisée par la commande de localisation.
Mais il y a le message d'erreur suivant lorsque vous essayez d'exécuter UpdateDB comme utilisateur ordinaire:
[mirror@home code]$ updatedb
updatedb: can not open a temporary file for `/var/lib/mlocate/mlocate.db'
Ou alors:
updatedb -o db
updatedb: can not change group of file `/var/lib/gforge/chroot/home/users/bigmeow/tmp/db.uhEZFQ': Operation not permitted
Voici toutes les étapes pour avoir une solution complète (testée à Centos 6.5)
1) Générer le DB:
updatedb --require-visibility 0 -o ~/.locate.db
2) Utilisez le DB:
locate --database=/full/path/to/.locate.db (does not work with ~)
or
locate --database=.locate.db
3) Créer un alias:
alias mylocate='locate --database=/full/path/to/.locate.db'
4) Utilisez votre lieu local localiser dB:
mylocate <my pattern>