ファイルを削除できないようにロックしながらも書き込み可能にするにはどうすればよいでしょうか?

ファイルを削除できないようにロックしながらも書き込み可能にするにはどうすればよいでしょうか?

ファイルを削除できないようにロックしつつ、書き込みは可能にしたいです。どうすればいいでしょうか?

問題のファイルは、NAS SMB ネットワーク共有上のファイルとしての Truecrypt ボリュームなので、誤って削除したくありません。

答え1

Windowsの場合:

  1. ファイルに対する「削除」権限を拒否します。
  2. 親ディレクトリの「子アイテムの削除」権限を削除または拒否します。

Unix(OS Xを含む)の場合:

  1. 親ディレクトリの「書き込み」権限を削除します。

これは、ファイルが削除されるのを防ぐだけであり、誤って切り捨てられたり、ゴミで上書きされたりすることを防ぐことはできないことに注意してください。ファイルが書き込み可能な場合は、何でも書き込むことができます。

また、ファイル権限をオペレーティング システム間で変換することはほぼ不可能です。NAS で Linux が実行されていて、Windows 内から権限を設定しようとすると、最終結果が予想と異なる可能性があります。

答え2

Linux では、ハード リンクを作成できます。その後、そのファイルに書き込み、それを「削除」できますが、削除されるのはディレクトリ内の参照だけです。他のハード リンクは、ファイルの内容を指したままなので、削除されることはありません。

Unix の世界では、ファイルを「削除」することはありません。ファイルへのハードリンクの数を減らすだけです。他に何も参照されていない場合、そのスペースは空きスペースとみなされ、使用できます...

答え3

バックアップ。書き込み可能なファイルを保護することはできません。ダメージ削除から保護できる場合でも、毎日バックアップしてください。

答え4

btrfs のような cow ファイル システムでは、サブボリューム + スナップショットを使用するか、--reflink=always を指定した cp を使用することでこれを実現できます。これにより、実質的に必要な数のファイルが作成され、1 つのファイルと同じ量のスペース + いくらかのオーバーヘッドを消費します (ただし、異常な数のコピーやスナップショットがない場合、特に小さなファイル サイズと組み合わせれば、これは目立たないはずです)。ファイルが変更されると、変更された部分のみが個別に保存され、残りは共有されたままになります。次に、それぞれに個別にアクセスする権限を設定します (必要な操作を行うには、読み取り専用権限でスナップショットまたはコピーを定期的に作成するだけです (オプションで、スナップショットの場合は ro でマウントするか、すべてではないようにマウントします。ファイルの場合は、心配な場合は、1 つのコピーに対して chattr +i を使用します (ユーザーは書き込み権限があってもファイルへの書き込みや変更はできません))。

関連情報