暗号化されたパーティションでのロケートの使用


25

Ubuntuをインストールするときに、/ home /を暗号化するように選択しました。さて、locateこのような暗号化されたパーティションで作業することは可能ですか?


同じ問題があります-Locateは暗号化されたホームパーティション外のファイルを見つけますが、その中のファイルを見ることができません。(正直なところ、Ubuntuを最初にインストールしたときに暗号化したことはありませんでしたが、私が抱えていたすべての問題を抱えています!)暗号化されたホームパーティション上のデータをインデックス化できるように設定します。私は比較的初心者なので、上記を読んで何をすべきかは明らかではありません:)。

4
あなた/homeは仮想ファイルシステム(ecryptfs)です。ログイン時にアクセス可能なパーティションとして「マウント」されます。/etc/updatedb.confを確認し、a)無視されたファイルシステムからecryptfsを削除(PRUNEFS)b)PRUNE_BIND_MOUNTS = "no"に変更
m33lky

4
その後、sudo updatedb新しいファイルのインデックスを作成するために実行できます。
m33lky

データベースのロケートは暗号化されていないスペースでの生活を使用し、ファイル名を開示することで暗号化を危うくする可能性があることに留意してください
Florian Heinle

回答:


29

I両方の「走る探し(updatedbを)私がログインしてるとき」前述したように、私は続けるの一部は、私の暗号化$ HOMEの下にデータベースを検索します。

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

そして私のインデックスファイルに$HOMEして

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

これで完全なインデックスを取得$HOMEできましたが、データベース$HOMEはマウントおよび復号化しない限り表示されません。


それは素晴らしい解決策です。そこでデータベースをどのように移行しましたか?
m33lky

4
しなかった。(暗号化された)ホームツリーのdbを生成しましたupdatedb -l 0 -o $HOME/var/mlocate.db $HOMEman locateデフォルトのデータベース(/var/lib/mlocate/mlocate.db)を検索し、次にのデータベースのリストを検索すると言います$LOCATE_PATH
ワルティンレーター

3
ecryptfsPRUNEFS定義から削除しないで/etc/updatedb.confください。ログインすると、/home/$USER復号化されますが、暗号化されたファイルとファイル名は/home/$USER/.Private無視されます。$HOMEマウントされていない場合、他のユーザーはdbまたは)ファイル名のファイル
waltinator

2
updatedb -l 0 -o $HOME/var/mlocate.db $HOMEある-Uはずがありませんupdatedb -l 0 -o $HOME/var/mlocate.db -U $HOME
destan

2
私の悪い@destinも、Steve Collyerのbash_path_funcs(linuxjournal.com/article/3645)を使用して、リムーバブルメディアのインデックスを作成するメソッドを拡張しました。取り外し可能媒体は(としてマウントして/media/_name_私は)updatedb -l 0 -o ~/var/mlocate/_name_.db -U /media/_name_ 私には.bashrc、私が持っている 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_PATHlocate私は媒体がされた場合でも、ファイル名表示することができませマウント。
ワルチネーター

3

ファイルシステムが復号化され、環境変数を一致させて読み取り/書き込みを行うときに、updatedbを実行してみませんか?

マニュアルページを読んだ後、BASH RCファイルに2つの変数を追加します。

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

上記で指定したディレクトリを作成し、$ usernameをmlocateグループに追加します。

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

ログアウトして再度ログインし、mlocateグループのユーザーをカウントして、新しい環境変数を取得します。実行すると、

updatedb -o $LOCATE_PATH

ロケートデータベース内の復号化されたファイルは現在ですか?それとも、それを機能させるために何をしましたか?

また、ユーザーのcrontabにupdatedbを追加することもできます。ファーストラン:

crontab -e

そして、次の行を追加します。

0 12 * * * updatedb -o $HOME/var/locate

マーティンへの私のコメントをご覧ください。セキュリティの考慮事項があるか、Ubuntuが見落としているのかを理解しようとしています。
m33lky

/etc/updatedb.confのPRUNEFS変数にecryptfsがリストされているため、おそらく--prunefs "nfs"も使用する必要があります。これは、ユーザープロファイルからユーザーごとのインデックスを保存および更新するため、適切なソリューションのようです。
ジョアンピント

@ m33lky問題はこれです:あなたはhomedirを暗号化するように要求したので、誰も(root!さえも)パスワードなしでそれを読むことができません。スマートソリューションは、ユーザーごとのロケートデータベースです。シングルユーザーマシンの簡単なソリューションは、ecryptfsログイン時に削除してスキャンすることです。将来的にlocateは、グローバルDBと現在のユーザーのホームDBから結果を集約する可能性があります。
joeytwiddle

2

ログインせずにデータベースインデックスを更新することは実際には不可能です。ログインして、updatedbコマンドを実行する必要があります。

で設定を確認します/etc/updatedb.confecryptfsから削除しPRUNEFS、おそらく/home/.ecryptfsから削除しPRUNEPATHSます。追いかけることを忘れないでくださいsudo updatedb


1
updatedb.confはecryptfsを削除します。また、PRUNE_BIND_MOUNTS = "yes"。検索に/ homeの結果が表示されないのはユーザーフレンドリーではないため、このようなデフォルトの背後にある理由を理解しようとしています:)
m33lky

家庭用の機能はユーザーごとのインデクサーを持つことだと思います...
マーティンオーウェンズ-doctormo-

暗号化なしで/ homeがインデックス化されるため、同じ動作が期待されます
...-m33lky

1
ユーザーインターフェイスの観点から状況を説明していました。
m33lky

2
ディスク全体を暗号化した場合、これは問題になりません。ホーム暗号化のみを使用している場合は、ユーザーごとにインデックス作成を開始し、個々の暗号化を使用する必要があります。ユーザーのホームフォルダーにあります。これらはすべて、ほとんどのユーザーが目にすることのない大きな開発とコストです。データベース検索ツールプロジェクトに対するバグを報告してください。
マーティンオーウェンズ-doctormo-
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.