
常にデータを書き込むバイナリアプリケーションがあるとします/tmp
。
/tmp
このバイナリを別のディレクトリとして使用するには、どのようになりすまし/エミュレートできますかhome/tmp
?
別のディレクトリを使用するように強制するためにこのバイナリを変更できないとします。
答え1
chroot
/
アプリケーションが見ているのが実際ではない環境でアプリケーションを実行できます/
。まったく新しいファイルシステム階層を作成し、--bind
ここで必要なすべてを mount() します。関連するポイントは、実際の環境を~/tmp
環境/tmp
にインストールできることですchroot
。
chroot
代わりに、Linuxコンテナを使用してほぼ同じ操作を実行できます(スーパーユーザー権限が必要です)lxc
。慣れていませんが、lxc
ホストシステムの一般的なユーザープロセスであるため、コンテナ内でこれらの構成のためにスーパーユーザーになる必要はありません。
答え2
ほとんどのPOSIX準拠ソフトウェアは次のとおりです。TMPDIRなどの環境変数
env TMPDIR=~/mytmp /path/to/application