ユーザーがディレクトリ内のファイルを削除するのを防ぐ

ユーザーがディレクトリ内のファイルを削除するのを防ぐ

これがまさにそのシーンです。

  1. oracle.dbaに属するディレクトリ/テストがあります。
  2. 新しいユーザーTESTを作成しました。このユーザーは新しいファイルを作成する権限を持ちますが、自分で作成したファイルを削除しないでください。

私はいくつかの方法を試しましたが、aclも試しましたが、うまくいきません。

ベストアンサー1

私はこれが標準のUNIX権限だけでは不可能だと思います。ここでの問題は(私が知っている限り)、新しく作成されたファイルは常に作成者の所有であることです。ファイルを作成できる場合は、親ディレクトリへの書き込みアクセス権があるため、ファイルも削除できます。

固定ビットを使用して、ユーザーが削除するのを防ぎます。他のユーザーこれはファイルであり、ディレクトリのSETGIDビットを使用して新しく作成されたファイルグループを変更できますが、LinuxではSETUIDディレクトリビットは無視されます。

ディレクトリを監視するデーモンを作成し(おそらくある種のファイル変更モニタを使用して)、ファイルが作成された後、所有権をoracle.dbaに変更できます。しかし、競争条件があります。つまり、デーモンがファイルが存在することを知る前に、攻撃者はファイルを削除する可能性があります。

成功しても書き込み権限がある限り、ファイルを明示的に削除せずにファイルをゼロの長さに切り取り、内容を削除できます。

おすすめ記事