Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux:ecryptfs_locate

Ecryptfs mit locate durchsuchen (+ Dash Ubuntu Unity)

Wenn das Home-Verzeichnis verschlüsselt ist, ist es nicht möglich mit locate zu suchen, da die Datenbank normalerweise außerhalb des verschlüsselten Verzeichnis gespeichert wird. Man könnte nun einfach das durchsuchen von verschlüsselten Verzeichnisen in der Konfiguration erlauben, dies würde jedoch eine Speicherung der Dateinamen in der Datenbank bewirken. Gerade wenn die Dateinamen aussagekräftig sind ist das ein Problem.

Deshalb ist es angebrachter eine Locate-Datenbank im Homeverzeichnis anzulegen.

Im Terminal

Folgender Befehl erstellt die Datenbank mit dem Namen .mlocate.db (mit Punkt versteckt im Homeverzeichnis). Durchsucht wird nur das Homeverzeichnis.

  updatedb -l 0 -o /home/pbeck/.mlocate.db -U /home/pbeck

Mit der export-Anweisung wird locate angewiesen zur Systemweiten-Datenbank auch die im Homeverzeichnis auszuwerten.

  export LOCATE_PATH=~/.mlocate.db

Um alles persistent zu machen wird die export-Anweisung in die .bashrc eingetragen. Die updatedb-Anweisung wird in einem täglich ausgeführten crontab eingetragen (crontab -e).

  @daily updatedb -l 0 -o /home/pbeck/.mlocate.db -U /home/pbeck 

Sollte der Rechner nicht dauerhaft laufen, kann auch Anacron zum starten verwendet werden. Konfiguration von Anacron habe ich hier beschrieben.

In der Ubuntu Unity Dash-Suche

Damit Unity überhaupt locate nutzt muss der Parameter use-locate über den dconf-editor (desktop/unity/lenses/files) oder mit dem Befehl gsettings set com.canonical.Unity.FilesLens use-locate 'true' aktiviert werden!

Um die Dash von Unity zur Suche zu überreden, muss die LOCATE_PATH Anweisung in .pam_environment eingetragen werden.

  pbeck@atlantis:~$ cat .pam_environment 
  LOCATE_PATH=/home/pbeck/.mlocate.db

Allerdings ist bis einsschließlich Ubuntu 12.10 ein Bug (https://bugs.launchpad.net/lightdm/+bug/952185), der .pam_environment bei verschlüsselten Home-Verzeichnissen nicht auswertet. Ein Workaround ist in der Datei /etc/pam.d/common-session am Ende session required pam_env.so einzufügen

Ein Nachteil ist, dass locate bei Unity max. 128 Ergebnisse auswertet. Falls nun bereits 128 Dateien außerhalb von /home gefunden werden, bleibt die Suche leer. Dann hilft nur eine sehr spezifische Dateisuche (statt radio - radio.m3u). Wenn man den Dateinamen nicht kennt, macht es das sehr schwer. Schöner wäre es, wenn Unity nur die lokale Datenbank auswerten würde.

linux/ecryptfs_locate.txt · Zuletzt geändert: 2014/03/16 18:08 von 127.0.0.1