Niveau :
Résumé : locate ; upadtedb ; slocate
Locate
Vous savez que vous avez téléchargé un fichier, mais vous ne savez plus où vous l'avez mis. Heureusement, MacGyver est là :
$ locate toto.mp3
Et si vous ne vous rappelez pas bien du nom, vous avez droit aux wildcards du shell et à une option qui permet d'ignorer la différence minuscule/majuscule.
$ locate -i "toto*.mp3"
Mieux, vous avez droit à des expressions régulières :
$ locate -r "[0-9][0-9]-.*.mp3"
Petite fonction sympathique, locate permet de faire un comptage, par exemple pour connaître l'étendue de votre collection.
$ locate -c "*.mp3"
Pour fonctionner, locate utilise une base de données, laquelle est mise à jour avec la commande updatedb. Relancez-là en root lorsque vous n'êtes plus à jour. Mais vous ne devriez pas en avoir besoin car updatedb est lancé régulièrement en cron (à ce propos si vous êtes sur une station allumée irrégulièrement, installez anacron).
Slocate
C'est bien beau me direz-vous, mais locate utilise une base de données créée par root. L'utilisateur normal a donc accès à des informations confidentielles comme la liste des fichiers accessibles uniquement par root.
C'est ici que slocate entre en jeu. Slocate est une version de locate qui vérifie à chaque recherche si l'utilisateur a bien les droits d'accès adéquats pour accéder à un fichier avant de le proposer à l'utilisateur.
Attention, toutes les options de slocate ne sont pas identiques à locate. Par exemple l'option -c ne compte pas les fichiers.
Chose utile, le paquet debian remplace updatedb et locate par des liens symboliques vers slocate pour ne pas troubler l'utilisateur. Par contre il ne les supprime pas totalement, pensez donc à supprimer l'ancienne base /var/cache/locate/locatedb sinon, locate sera toujours disponible à travers /usr/bin/locate.notslocate.
Conclusion
Comme disait Pline l'ancien, si vous êtes sur une machine partagée entre de nombreux utilisateurs ou si elle est sensible, installez slocate !
Comments