La locate
commande est un outil très utile sous Linux, mais il semble que seul root puisse exécuter la updatedb
commande, ce qui est très peu pratique pour l'utiliser. Alors, comment faire en sorte que l'utilisateur ordinaire ait le privilège d'exécuter la commande updatedb?
updatedb
est la commande utilisée pour mettre à jour la base de données utilisée par la commande Locate.
Mais il y a le message d'erreur suivant lorsque vous essayez d'exécuter updatedb en tant qu'utilisateur ordinaire:
[mirror@home code]$ updatedb
updatedb: can not open a temporary file for `/var/lib/mlocate/mlocate.db'
Ou:
updatedb -o db
updatedb: can not change group of file `/var/lib/gforge/chroot/home/users/bigmeow/tmp/db.uhEZFQ': Operation not permitted
--require-visibility
drapeau ... mais vous pourriez peut-être expliquer un peu pourquoi? comme pourquoi ne pas simplement faire ce que fait @xaizek et générer la base de données dans un emplacement autorisé par votre utilisateur sans utiliser l'--require-visibility
indicateur?SECURITY Databases built with --require-visibility no [tbs: or 0] allow users to find names of files and directories of other users, which they would not otherwise be able to do.
Vous pouvez simplement créer une base de données à domicile avec l'
-o
argument deupdatedb
:Et utilisez-le
slocate
comme ceci:Vous souhaitez probablement définir un alias pour
slocate --database=~/.locate.db
.la source
xaizek:users
paire propriétaire: groupe pour moi, le groupe est donc celui par défaut. Vous pouvez également vérifier les options dans le/etc/updatedb.conf
fichier.slocate
est une version plus sécurisée de l'ancienlocate
. Je pense que les centos auraient dû êtreslocate
installés avec leur nomlocate
. Quoi qu'il en soit, il ne devrait pas y avoir de différences dans votre cas, et fondamentalement dans la plupart des cas possibles (sur Slackwarelocate
est juste un lien symbolique versslocate
).mlocate
devrait être plus rapide, mais toujours compatible avecslocate
. Je ne sais pas si c'est la raison. Si vous ne voulez pas essayerslocate
, quel site ne fonctionne pas, téléchargez les sources à partir de l'un des miroirs Slackware, elles incluent les sources des packages: voir ici .Voici toutes les étapes pour avoir une solution complète (testée dans Centos 6.5)
1) générer le db:
2) utilisez le db:
3) créez un alias:
4) Utilisez votre locale localiser db:
la source
$HOME
au lieu de~
, ou tout simplement se débarrasser de la=
. les deux éléments suivants fonctionneront:locate --database ~/.locate.db
oulocate --database=$HOME/.locate.db
. voir ce fil: stackoverflow.com/questions/11587343/…