Windows の NTFS なら、編集はできるけど削除はできない、というファイルを作ることができます。アクセス許可のところで「削除」を「拒否」すればよい。
このように NTFS ではわりと細かくアクセス制御のフラグを操作できる。
ではコレと同じようなことを Linux ではどうすれば実現できるか。
残念ながら Linux でのファイルへのアクセス制御は、r,w,x のフラグしか設定できない。編集させるためには w を付ける必要があり、 w を付けておくと削除も許可されてしまう。
ここで ext2,ext3,ext4, あたりに実装されている拡張アクセス制御の機能を使う。ファイルシステム側でいくつかの機能が実装されておりそれを設定する。設定コマンドは chattr 。確認コマンドは lsattr。
フラグとして "a" を付けると、追記モードでのオープンは許可するけどその他の状態変更操作は拒否するというモードになる。だから削除できなくなる。
# chattr +a /tmp/sample
このようにして設定する。