web-dev-qa-db-ja.com

MacOSのfakechrootのような機能?

MacOSで実行可能ファイルをビルドするときは、使用するファイルとライブラリを細かく制御するために、chrootアプローチを使用したいと思います。理想的にはchrootで十分です(MacOSで利用可能です)が、まず、実行時にユーザーがrootである必要があると思います。次に、fakechrootが提供する機能を調べたところ、より興味深いように見えました。私の目的ではchroot(ただし、fakechrootはMacOSに移植されていません)。

特に、fakechrootは、open()などの関数を置き換え、open()を置き換えることで、「仮想環境」を大幅に制御できるため、私が従う方法のように見えます。実行可能ファイル用に作成します。たとえば、必要なシステムライブラリをchrootツリーにコピーする代わりに、パッチを適用したopen()は、実行可能ファイルで使用したいライブラリのみへのアクセスを提供できます。

MacOSですでに利用可能なこのようなものはありますか?それとも自分で書く必要がありますか?

1
cesss

App Sandbox カーネルで動作し、Appleによってサポートされているため、サードパーティのコードを移植するよりもおそらく適しています。リンクからの引用:

App Sandboxは、機密性の高いリソースへのアクセスをアプリごとに制限することで、攻撃者がアプリのセキュリティホールを悪用した場合に、ユーザーデータの盗難、破損、削除、またはシステムハードウェアの乗っ取りに対する最後の防衛線を提供します。 。たとえば、サンドボックス化されたアプリは、資格を使用して次のリソースのいずれかを使用する意図を明示的に示す必要があります。

.。

一方、サンドボックス化されたアプリは、要求された特定のリソースにアクセスでき、ユーザーは通常の方法(ドラッグアンドドロップなど)を実行してサンドボックスを拡張でき、安全と見なされる多くの追加アクションを自動的に実行できます。 。

3
thrig