0

私のシステムには、たとえば /stuff にマウントポイントがあります。/stuff を別のマウントとして表示するには、特定のプログラムが 1 つ必要です (プログラムにはハードコードされた /stuff パスがあり、それを変更することはできません)。その特定のプログラムが /stuff を他の人とは別のものとして表示する方法はありますか? chroot を使用し、実際の rootfs からすべてのマウント/devnode などにコピーする必要がありますか? ありがとう。

編集:明確にするために、あるプログラムが /stuff を調べたときに別の場所を表示するようにしたいのですが、プログラムが別の場所を介して /stuff の内容にアクセスすることは望ましくありません。たとえば、システムの他の場所で「ls /stuff」を実行すると、fileA.txt fileB.txt が表示されますが、この 1 つのプログラムが「ls /stuff」を実行すると、fileC.txt が表示されます。

4

1 に答える 1

0

この質問に「Linux」というタグを付けたので、これがあなたが求めているOSだと思います。特定のプログラムの起動方法によっては、" " を使用して回避策を作成できる場合がありますunshare(1)

そのためには、このプログラムが必要とするスクリプト マウント (またはバインド マウント) を記述してから、プログラムを実行する必要が/stuffあります。ただし、このスクリプトを単独で開始しないでください。" unshare -m thescriptsname" を使用すると、スクリプトによって使用されるプロセスで始まるプロセス ツリーのみが、新しい/変更されたマウントを認識します。

状況によっては、システムに影響を与えずにマウントを変更できるシェルを起動することも役立つ場合があります。" unshare -m $SHELL" は、必要な区切りを与える必要があります。

于 2013-11-20T07:19:05.650 に答える