書き込み用のファイルを作成または開くことができないように、Linuxでコマンドを実行したいと思います。それでもファイルを正常に読み取ることができなければならず(したがって、空のchrootはオプションではありません)、すでに開いているファイル(特にstdout)に書き込むことができるはずです。
ファイルを一部のディレクトリ(現在のディレクトリなど)に書き込むことができれば、ボーナスポイントになります。
私は、システム全体のAppArmorやSELinuxなどの設定を含まず、root権限も含まないプロセスローカルソリューションを探しています。ただし、カーネルモジュールのインストールが必要な場合があります。
ファイルを作成する機能がある場合は、本当に快適で良いような機能を探しています。 ulimitは、このユースケースに対処するためのもう1つの便利な方法です。
ベストアンサー1
空のchrootを作成し、chroot内で読み取り専用でデフォルトのファイルシステムをバインドマウントするのはどうですか?
おそらく読み取り専用のバインドマウントを作成するには、次のようにする必要があります。
mount --bind /foo/ /path/to/chroot/
mount -o remount,ro /path/to/chroot/
刑務所に書き込みアクセス権を付与したい他のディレクトリをバインドマウントできます。マウント特殊ディレクトリ(/dev/、/proc/、/sys/)をバインドする必要がある場合は、そのディレクトリをそのままマウントすることは安全ではない可能性があるため、注意してください。