web-dev-qa-db-ja.com

パーマの不変のようなフラグ

ファイルのUNIXパーミッションをロックし、フラグをリセットせずに変更しないようにするchattrフラグはありますか?ファイル自体はまだ変更可能である必要があります。私は...無知な人々が...パーミッションを誤って間違ったものに変更するのを防ぎたいだけです。

2
xenoterracide

Linux chattrにはそのようなフラグはありません。ファイルを不変または追加専用にするか(いずれの場合も、ファイルのアクセス許可と所有権はロックされます)、ファイルの所有者とルートにアクセス許可の変更を許可することができます。 (ディレクトリの不変属性は、ディレクトリからのファイルの作成または削除を防ぎますが、エントリのメタデータは変更しません。)

ファイルの所有権の変更が許容される場合は、それを行い、アクセス制御リスト(またはグループの所有権)を使用して、ファイルを必要とする人にファイルへの読み取りおよび書き込みアクセス権を付与します。これがあなたの仲間のルーツが信頼できない社会問題であるならば、私はあなたが満足のいく技術的な問題を見つけることができないと思います。

ファイルの所有者に権限の変更を許可しないことは、 強制アクセス制御 のカテゴリに分類されます。これは、UNIXが従来サポートしていたものではありません。 LinuxにはいくつかのMACフレームワークがあり、2つの主要なフレームワークは SELinuxAppArmor です。彼らがあなたがやろうとしていることを許可するかどうかはわかりません。

これが一般的な問題である場合は、データベースをストレージに使用することを検討できます。通常、権限を制御させずに、テーブルの読み取りと書き込みの権限を誰かに与えることができます。

データベースに移動するよりも抜本的な手順は、ファイルを別のファイルシステムに移動することです(これは、設定で実行できる場合とできない場合があります)。次に、ファイルが存在する必要がある場所でシンボリックリンクを使用し、アクセス許可チェンジャーが実際のファイルがある場所を調べるのに十分なほど洗練されていないことを期待できます(おそらく読み取り専用にすることができますか?)。

Fuse ファイルの内容をミラーリングするがメタデータを変更するファイルシステムは別の可能性です。既存のものは bindfs で、これは権限を書き換えることができます(-o perms=…)そしてchmodを無視することができます(-o chmod-ignore)。