Verwenden Sie locate auf einer verschlüsselten Partition

25

Ich habe / home / ausgewählt, um verschlüsselt zu werden, als ich Ubuntu installiert habe. Ist es nun möglich, locatemit einer solchen verschlüsselten Partition zu arbeiten?

m33lky
quelle
Ich habe das gleiche Problem - locate findet Dateien außerhalb meiner verschlüsselten Home-Partition, kann sie jedoch nicht darin sehen. (Um ehrlich zu sein, ich wünschte, ich hätte es nie verschlüsselt, als ich Ubuntu installiert habe, mit all den Problemen, die ich damit hatte!) Bitte kann jemand in klaren Schritten erklären, was ich tun muss, um in der Lage zu sein make locate kann Daten auf einer verschlüsselten Home-Partition indizieren. Ich bin ein relativer Neuling, daher ist es nicht offensichtlich, was ich tun soll, wenn ich das Obige lese :).
4
Ihr /homeist ein virtuelles Dateisystem (ecryptfs). Es wird „montiert“ als begehbares Partition , wenn Sie sich anmelden Überprüfen Sie Ihre /etc/updatedb.conf und a) Entfernen ecryptfs aus ignoriert Dateisysteme (PRUNEFS) b) Änderung PRUNE_BIND_MOUNTS = „no“.
m33lky
4
Danach können Sie ausführen, sudo updatedbum neue Dateien zu indizieren.
m33lky
Denken Sie daran, dass die Datenbank-Suche Leben in unverschlüsseltem Raum verwendet und möglicherweise Ihre Verschlüsselung gefährdet, indem Sie Dateinamen offenlegen
Florian Heinle

Antworten:

29

Ich führe beide "locate (updatedb) aus, wenn ich angemeldet bin", wie oben erwähnt, und behalte meinen Teil der locate-Datenbank unter meinem verschlüsselten $ HOME.

export LOCATE_PATH="$HOME/var/mlocate.db"

und dann indiziere ich die Dateien $HOMEmit

updatedb -l 0 -o $HOME/var/mlocate.db -U $HOME

Jetzt habe ich einen vollständigen Index von, $HOMEaber die Datenbank ist nur sichtbar, wenn sie $HOMEeingehängt und entschlüsselt ist.

Waltinator
quelle
Das ist eine schöne Lösung. Wie haben Sie Ihre Datenbank dorthin migriert?
m33lky
4
Habe ich nicht. Ich habe gerade eine Datenbank für meinen (verschlüsselten) Stammbaum mit generiert updatedb -l 0 -o $HOME/var/mlocate.db $HOME. man locatesagt, es wird die Standarddatenbank durchsuchen ( /var/lib/mlocate/mlocate.db), dann die Liste der Datenbanken in $LOCATE_PATH.
Waltinator
3
Entfernen Sie nichtecryptfs aus der PRUNEFSDefinition in /etc/updatedb.conf. Wenn Sie angemeldet sind, /home/$USERwird entschlüsselt, aber die verschlüsselten Dateien und Dateinamen in /home/$USER/.Privatesollten ignoriert werden. Wenn Sie $HOMEnicht gemountet sind, haben andere keinen Zugriff auf die Datenbank oder die (unverschlüsselte) ) Dateien mit Dateinamen
Waltinator
2
updatedb -l 0 -o $HOME/var/mlocate.db $HOMEes fehlt -Ues sollte seinupdatedb -l 0 -o $HOME/var/mlocate.db -U $HOME
destan
2
Meine schlechte, @destin Ich habe meine Methode mit Steve Collyers bash_path_funcs ( linuxjournal.com/article/3645 ) auch auf das Indizieren von Wechselmedien ausgeweitet . Mit dem Wechselmedium verbunden (wie /media/_name_ich es tue) updatedb -l 0 -o ~/var/mlocate/_name_.db -U /media/_name_ In meinem .bashrchabe export LOCATE_PATH="$HOME/var/mlocate/mlocate.db for i in $HOME/var/mlocate/*.db ; do addpath -p LOCATE_PATH $i done uniqpath -p LOCATE_PATH und locatekann ich mir Dateinamen anzeigen lassen, auch wenn das Medium NICHT verbunden ist .
Waltinator
3

Wie wäre es, wenn Sie updatedb ausführen, wenn Ihr Dateisystem entschlüsselt ist, und versuchen, Umgebungsvariablen zum Lesen / Schreiben abzugleichen?

Fügen Sie nach dem Lesen der Manpage Ihrer BASH RC-Datei zwei Variablen hinzu.

man locate
echo "export LOCATE_PATH=$HOME/var/lib/mlocate/mlocate.db:$LOCATE_PATH" >> ~/.bashrc
echo "export DBPATH=$HOME/var/lib/mlocate/mlocate.db:$DBPATH" >> ~/.bashrc

Machen Sie das oben angegebene Verzeichnis und fügen Sie $ username der mlocate-Gruppe hinzu.

mkdir -p ~/var/lib/mlocate/
sudo usermod -a -G mlocate $username

Melden Sie sich ab und wieder an, um Ihren Benutzer in der mlocate-Gruppe zu zählen und die neuen Umgebungsvariablen abzurufen. Wenn du jetzt rennst,

updatedb -o $LOCATE_PATH

befinden sich die entschlüsselten Dateien jetzt in einer Suchdatenbank? Oder was hast du getan, damit es funktioniert oder besser?

Möglicherweise möchten Sie auch updatedb zur crontab des Benutzers hinzufügen. Erster Lauf:

crontab -e

Und fügen Sie die folgende Zeile hinzu:

0 12 * * * updatedb -o $HOME/var/locate
mgajda
quelle
Siehe meinen Kommentar zu Martin. Ich versuche zu verstehen, ob es Sicherheitsaspekte gibt oder ob die richtige Konfiguration von Ubuntu einfach übersehen wurde.
m33lky
Da ecryptfs in der PRUNEFS-Variablen unter /etc/updatedb.conf aufgeführt ist, müssen Sie wahrscheinlich auch --prunefs "nfs" verwenden. Dies scheint eine gute Lösung zu sein, da der Index pro Benutzer aus dem Benutzerprofil gespeichert und aktualisiert wird.
João Pinto
@ m33lky Das Problem ist: Sie haben darum gebeten, Ihr Homedir zu verschlüsseln, damit niemand (nicht einmal root!) es ohne das Passwort lesen kann. Die intelligente Lösung ist eine benutzerspezifische Ortungsdatenbank. Die einfache Lösung für einen Einzelbenutzer-Computer ist das Entfernen ecryptfsund Scannen, wenn Sie angemeldet sind. In Zukunft locatekönnten möglicherweise Ergebnisse aus der globalen Datenbank und der Stammdatenbank des aktuellen Benutzers zusammengefasst werden.
Joeytwiddle
2

Es ist nicht wirklich möglich, den Datenbankindex zu aktualisieren, ohne angemeldet zu sein. Melden Sie sich an und führen Sie den Befehl updatedb aus.

Checke deine Konfiguration ein /etc/updatedb.conf. Entfernen ecryptfsvon PRUNEFSund wahrscheinlich /home/.ecryptfsvon PRUNEPATHS. Vergiss nicht hinterher zu rennen sudo updatedb.

Martin Owens -doctormo-
quelle
1
Die Datei updatedb.conf schneidet ecryptfs ab. PRUNE_BIND_MOUNTS = "yes". Ich versuche, die Gründe für solche Standardeinstellungen zu verstehen, da dies nicht benutzerfreundlich ist, da Ergebnisse von / home in Ihren Suchanfragen fehlen :)
m33lky
Ich vermute, die Funktionalität für zu Hause besteht darin, einen Indexer pro Benutzer zu haben ... aber das ist Spekulation.
Martin Owens -doctormo-
Ohne Verschlüsselung wird / home indiziert, daher erwarte ich dasselbe Verhalten ...
m33lky
1
Ich habe die Situation aus der Perspektive der Benutzeroberfläche beschrieben.
m33lky
2
Wenn Sie die gesamte Festplatte verschlüsselt hätten, wäre dies kein Problem. Wenn Sie nur eine Heimverschlüsselung hätten, müssten Sie jetzt mit der Indizierung pro Benutzer und mit jeder einzelnen Verschlüsselung beginnen im Home-Ordner des Benutzers ... all dies ist eine wichtige Entwicklung und kostet etwas, das die meisten Benutzer nie sehen. Bitte melden Sie den Fehler im Projekt "Datenbank-Tools suchen".
Martin Owens -doctormo-