アプリケーションが表示できるファイル(特にファイルの内容)を変更する方法はありますか?
DAC または MAC を使用してファイルへのアクセスをブロックできることを認識していますが、アクセスをブロックしたくありません。代わりに、アプリケーションで表示できる内容を変更したいと思います。たとえば、アプリケーションを使用してファイルにアクセスすると/home/user/.profile
ブラウザに入力しますが、アプリケーションが実際のコンテンツを表示するのではなく、同じファイルパスを持つなりすましバージョンを表示したいとします。端末や他のアプリケーションでファイルを開くと、正しい内容が表示されます。これは可能ですか?特定のユーザーのコンテンツの変更まで拡張できますか?
答え1
Linuxマウントネームスペースを使用して、ファイルシステムに修正ビューを設定できます。 LXCなどのコンテナフレームワークはこれを後で使用します。シェルでも簡単に使用できますが、インストールにはrootアクセスが必要です。
unshare -m
mount --make-rprivate /
mount --bind /spoof/x /target/x
sudo -u {YOUR USER} {COMMAND}
バインドマウントは、元のパスにマウントして元のファイルシステムツリーの一部を隠すために使用されます。mount --make-rprivate
マウントネームスペース間で新しいマウントが伝播するのを防ぎます。
pam_namespace
モジュールを使用してユーザーを構成し、独自のマウントネームスペースからバインドマウントを構成できます。