コンテンツを含むシンボリックリンクディレクトリ

コンテンツを含むシンボリックリンクディレクトリ

したがって、/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
    

(未検証)

関連情報