世界中で読めないホームディレクトリで位置検索を使用する方法

世界中で読めないホームディレクトリで位置検索を使用する方法

man locate説明する:

 The locate database is typically built by user ``nobody'' and the
 locate.updatedb(8) utility skips directories which are not readable for
 user ``nobody'', group ``nobody'', or world.  For example, if your HOME
 directory is not world-readable, none of your files are in the database.

他の人が読めないホームディレクトリを持つ方がセキュリティ上の方が良いので、自分のホームディレクトリを検索可能にするにはどうすればよいですか(自分だけのため)。

find ~ -type f > .locate明らかに追加してcrontabdoを実行すると、この問題を解決できますがgrep <search> ~/.locate、これを行う組み込みの標準的な方法はありますかlocate

ベストアンサー1

ほとんどのディストリビューションは、locatefindutils ツールを crontab から呼び出されるスクリプトとともにパッケージとして提供します。このスクリプトを見つけて(Debian 9では場所など/etc/cron.daily/locate)、ユーザーの処理を削除してデータベースファイルを変更するだけで変更できます。したがって、最終的な基本形式は次のようになります。

updatedb --output="$HOME/locatedb" --localpaths="$HOME"

これはおそらくcrontabに配置する必要があります。

その後、使用法は次のようになります。

locate --database="$HOME/locatedb" somefilepattern

ネットワークインストールを使用してそれをインデックス化したい場合は、より多くのオプションを追加する必要があります。

システムへのルートアクセス権があり、可能なセキュリティ/個人情報保護の問題を考慮すると、生活を簡素化し、代替を使用することができます。mlocateユーザーが直接アクセスできないデータベースにすべてをルートとして索引付けすることを除いて、ほとんどのディストリビューションには場所ツールと同じように機能するツールがあります。 setuid / setgidを使用したコマンドはそれを読み取り、そのユーザーが最初に結果にアクセスできる場合にのみそのユーザーに結果を表示することを許可します。

おすすめ記事