przy użyciu lokalizacji na zaszyfrowanej partycji

25

Wybrałem / home / do zaszyfrowania podczas instalacji Ubuntu. Czy można teraz locatepracować z taką zaszyfrowaną partycją?

m33lky
źródło
Mam ten sam problem - locate znajdzie pliki poza moją zaszyfrowaną partycją domową, ale nie będzie w stanie jej zobaczyć. (Szczerze mówiąc, żałuję, że nigdy nie zaszyfrowałem go, kiedy instalowałem Ubuntu, biorąc pod uwagę wszystkie problemy, jakie miałem z tym związane!) Proszę, czy ktoś może wyjaśnić, co należy zrobić, aby móc make locate będzie mógł indeksować dane na zaszyfrowanej partycji domowej. Jestem względnym początkującym, więc nie jest oczywiste, co robić po przeczytaniu powyższego :).
4
Twój /hometo wirtualny system plików (ecryptfs). Jest „montowany” jako dostępna partycja podczas logowania. Sprawdź /etc/updatedb.conf i a) usuń ecryptfs z ignorowanych systemów plików (PRUNEFS) b) zmień na PRUNE_BIND_MOUNTS = „nie”
m33lky
4
Następnie możesz uruchomić sudo updatedbindeksowanie nowych plików.
m33lky
pamiętaj, że lokalizator bazy danych korzysta z życia w niezaszyfrowanej przestrzeni, prawdopodobnie narażając szyfrowanie na ujawnienie nazw plików
Florian Heinle

Odpowiedzi:

29

Obaj „uruchamiam lokalizowanie (aktualizacjab), gdy jestem zalogowany”, jak wspomniano powyżej, i trzymam swoją część bazy danych lokalizacji w moim zaszyfrowanym $ HOME.

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

a następnie indeksuję pliki za $HOMEpomocą

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

Teraz mam pełny indeks, $HOMEale baza danych nie jest widoczna, chyba że $HOMEzostanie zamontowana i odszyfrowana.

waltinator
źródło
To miłe rozwiązanie. Jak migrowałeś tam swoją bazę danych?
m33lky
4
Ja nie. Właśnie wygenerowałem db dla mojego (zaszyfrowanego) drzewa domowego, przy pomocy updatedb -l 0 -o $HOME/var/mlocate.db $HOME. man locatemówi, że przeszuka domyślną bazę danych ( /var/lib/mlocate/mlocate.db), a następnie listę baz danych w $LOCATE_PATH.
waltinator,
3
Nie usuwaj ecryptfsz PRUNEFSdefinicji w /etc/updatedb.conf. Gdy jesteś zalogowany, /home/$USERjest odszyfrowywany, ale zaszyfrowane pliki i nazwy plików /home/$USER/.Privatepowinny być ignorowane. Gdy twoje $HOMEnie jest zamontowane, inni nie będą mieli dostępu do bazy danych lub (niezaszyfrowane ) pliki z nazwami plików
waltinator
2
updatedb -l 0 -o $HOME/var/mlocate.db $HOMEbrakuje -U, powinno byćupdatedb -l 0 -o $HOME/var/mlocate.db -U $HOME
destan
2
Mój zły, @destin Rozszerzyłem również moją metodę indeksowania nośników wymiennych, używając bash_path_funcs Steve'a Collyera ( linuxjournal.com/article/3645 ). Po zamontowaniu usuwalnego nośnika (jak /media/_name_) robię updatedb -l 0 -o ~/var/mlocate/_name_.db -U /media/_name_ W moim pliku .bashrcmam 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 i locatemogę wyświetlać nazwy plików, nawet jeśli nośnik NIE jest zamontowany.
waltinator
3

Co powiesz na uruchamianie updatedb po odszyfrowaniu systemu plików i próbie dopasowania zmiennych środowiskowych do odczytu / zapisu?

Po przeczytaniu strony podręcznika dodaj dwie zmienne do pliku BASH RC.

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

Utwórz katalog określony powyżej i dodaj $ username do grupy mlocate.

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

Wyloguj się i zaloguj ponownie, aby policzyć użytkownika w grupie mlocate i uzyskać nowe zmienne środowiskowe. Teraz kiedy biegniesz,

updatedb -o $LOCATE_PATH

czy odszyfrowane pliki znajdują się teraz w zlokalizowanej bazie danych? Lub co zrobiłeś, aby działało lub lepiej?

Możesz także dodać updatedb do crontab użytkownika. Pierwszy bieg:

crontab -e

I dodaj następujący wiersz:

0 12 * * * updatedb -o $HOME/var/locate
mgajda
źródło
Zobacz mój komentarz do Martina. Staram się zrozumieć, czy istnieją jakieś względy bezpieczeństwa lub właściwa konfiguracja została właśnie pominięta przez Ubuntu.
m33lky
Ponieważ ecryptfs znajduje się na liście w zmiennej PRUNEFS na /etc/updatedb.conf, prawdopodobnie musisz również użyć opcji --prunefs „nfs”. To wydaje się być dobrym rozwiązaniem, ponieważ przechowuje i aktualizuje indeks dla poszczególnych użytkowników z profilu użytkownika.
João Pinto,
@ m33lky Problem polega na tym, że poprosiłeś o zaszyfrowanie swojego homediru, więc nikt (nawet root!) nie może go odczytać bez hasła. Inteligentne rozwiązanie to baza danych lokalizacji dla użytkownika. Łatwym rozwiązaniem dla komputera dla jednego użytkownika jest usunięcie ecryptfsi skanowanie po zalogowaniu. Być locatemoże w przyszłości może agregować wyniki z globalnej bazy danych i macierzystej bazy danych bieżącego użytkownika.
joeytwiddle
2

Naprawdę nie jest możliwe zaktualizowanie indeksu bazy danych bez zalogowania. Należy się zalogować i uruchomić komendę updatedb.

Sprawdź swoją konfigurację w /etc/updatedb.conf. Usuń ecryptfsz PRUNEFSi prawdopodobnie /home/.ecryptfsz PRUNEPATHS. Nie zapomnij pobiec sudo updatedbza.

Martin Owens -doctormo-
źródło
1
updatedb.conf przycina ecryptfs. Ponadto PRUNE_BIND_MOUNTS = „tak”. Próbuję zrozumieć powód takich domyślnych wartości, ponieważ nie jest przyjazny dla użytkownika brak wyników wyszukiwania / home podczas wyszukiwania :)
m33lky
Domyślam się, że funkcjonalność dla domu polega na indeksowaniu na użytkownika ... ale to spekulacja.
Martin Owens -doctormo- 10.01.11
Bez szyfrowania / home zostaje zindeksowane, więc oczekuję tego samego zachowania ...
m33lky
1
Opisałem sytuację z perspektywy interfejsu użytkownika.
m33lky 12.01.11
2
Jeśli zaszyfrowałeś cały dysk, nie stanowiłoby to problemu, gdybyś miał tylko szyfrowanie domowe, musisz teraz rozpocząć indeksowanie według użytkowników i używać poszczególnych szyfrów ... w rzeczywistości równie dobrze możesz po prostu ukryć indeks domowy w folderze domowym użytkownika .... wszystko to stanowi duży rozwój i koszt czegoś, czego większość użytkowników nigdy nie widzi. Zgłoś błąd dotyczący projektu narzędzi do zlokalizowania bazy danych.
Martin Owens -doctormo-