したがって、/usr
ファイル'ro'
システム(変更できない、作業ルール、およびセキュリティ)があり、別のディレクトリが/bigdata
あります'rw'
。
いくつかのサービスをインストールしていますが、それを作成する必要があるので、/usr/foo
そのサービスにシンボリックリンクできると思いました/bigdata
。問題は他のファイルもあるということです/usr/foo
。
foo
のすべての内容をコピーしない回避策はありますかbigdata
?
ありがとうございます!
答え1
1つのアイデアは書き直すことですが、/usr/foo
誤動作するアプリケーションにのみ当てはまります。誤動作するアプリケーションは/usr/foo
エイリアスとして扱われますが、システムの他のすべてのプロセスでは、実際にそのアプリケーション内のファイルを含む実際のコンテンツを表示/bigdata
できます。これは、誤動作するアプリケーションがアクセスできない一般的なコンテンツ/usr/foo
に興味がないと仮定します。/usr/foo
sudo unshare --mount sh -c 'mount --make-rprivate / &&
mount -n --bind /bigdata /usr/foo &&
exec su "$SUDO_USER" -c misbehaving_application'
(テスト済み)
そうでなければ、ファイルシステムの上書きコメントで提案されているように、問題は解決される可能性があります。
最後に、最後の手段として、いくつかのシンボリックリンクの練習でこの問題を解決できます。アイデアは次のとおりです。
/usr/foo
コピーを他の場所にバインドマウントmkdir /writable/place/foo mount --bind /usr/foo /writable/place/foo
/usr/foo
代替ディレクトリに圧縮mount --bind /bigdata /usr/foo
/usr/fooからアクセスできるように既存のファイルをシンボリックリンクします。
for x in /writable/place/foo/*; do ln -s "$x" /usr/foo done
(未検証)