私はchattr +i filename
すべてのユーザーに対してファイルを読み取り専用にするコマンドを知っています。ただし、問題はを使用してキャンセルできることですchattr -i filename
。
システムの誰もがファイルを読み取ることができますが、誰も書き込めないようにする方法はありますか?ルートでもなく戻り方もありません(書き換え可能なオプションはありません)。
ベストアンサー1
CDまたはDVDで焼く。消去できるタイプではなく、一度書き込むことができるタイプです。または他のタイプの読み取り専用デバイスです。
まあ、私はあなたがソフトウェアソリューションをしたいと思うので、ここにいくつかのアイデアがあります。ルートに対しても使用されるシステムコール(*)chattr
を無効にするSELinuxルールセットを作成できます。もう1つの可能性は、以下を使用することです。能力:設定には機能が+i
必要なため、CAP_LINUX_IMMUTABLE
機能境界セット内のすべてのプロセスがその機能を含まないようにスケジュールできる場合、誰もこれらのフラグを変更できません。ただし、init
これをすべてのプロセスに適用するにはサポートが必要です。システムこれができるしかし、サービスごとに個別に行わなければならないと思います。
(※ioctl
代替品となる場合もございます。)
ただし、これにより通常のルートがrawデバイス上のファイルシステムを変更できるため、これをdebugfs
防止し、カーネルの変更(モジュールのロード)も防止する必要があります。 sysctlを使用してモジュールがロードされるのを防ぎますが、kernel.modules_disabled
rawデバイスへのアクセスを防ぐかどうかはわかりません。そして、関連するすべての設定ファイルも変更不可能にします。
とにかく、その後、システムの起動方法が変更されるのを防ぐ必要があります。そうしないと、誰かが上記の制限を上書きできるカーネルを使用してシステムを再起動できます。