ファイルを削除できないようにする必要がありますが、変更と名前変更を可能にする必要があります。

ファイルを削除できないようにする必要がありますが、変更と名前変更を可能にする必要があります。

ファイルがあることを確認し、ファイルがある場合は、電子メールアドレスのリストを読み、通知を送信するスクリプトがあります。たとえば、職場ですでに出力を監視している場合など、通知が不要な場合は名前を変更します。他の管理者が削除したくありません。

ファイルを変更できないようにすることを知っていますが、chattr +iファイルが削除されるのを防ぎたいと思います。私はchattrプログラムがファイル名ではなく属性を追跡するためにinode番号を使用すると思います。

これを達成できるユーティリティはありますか?

答え1

「他の管理者」に関するご意見は、rootファイルを保存するシステムの権限。権限で設定できるすべての項目は、同じ権限を持つ人がキャンセルできます。

これが問題にならず、拡張権限を持つ人がいない場合は、ファイルを入れるか、通常はtビットを設定したファイルを入れることができます(他の人がアクセスできないようにする)/tmp/var/tmpいいえ特権ユーザーは次から来ます。削除それ。ファイルをchmodしてグループに書き込み可能(同じグループの他のユーザーが変更可能)にすることができます。

答え2

「他の管理者」は悪意あるのか?彼らはあなたを捕まえるためにここにいるのですか?もしそうなら、おそらくあなたができることは何もありません。

そうでない場合、おそらく最も簡単な解決策は、ファイルをホームディレクトリに保存するようにスクリプトを変更することです。これに対するバリエーションは、ファイルが削除(リンク解除)されない限り、別のディレクトリにあるファイルへのハードリンクを作成することです。みんなリンク、ファイルはそのまま残ります。 (すべてのリンクの場所を繰り返し、まだ存在するリンクを見つけて、削除されたすべてのリンクを再リンクする別のスクリプトを作成する必要があります。)一部の編集者はリンクを壊すことがあります(ファイルを編集するなど)。

「他の管理者」が悪意を持っているか、あなたを捕まえようとしても経験がなく徹底していない場合は、問題を解決することができます。

または、ファイルを変更できないようにし、追加のテストを使用して電子メールを送信するかどうかを決定するようにスクリプトを変更します。

答え3

他の答えのいくつかで指摘されているように、このmvユーティリティを使用して社会的障害を提案することができます。

mv yourfile THIS_IS_user38537_FILE_PLEASE_DO_NOT_REMOVE

答え4

[以前の回答の交換]

単にファイルへのハードリンクを作成できます。

ln email_file hard_link

その後、削除してもそのまま残り、簡単に復元できます。


[質問に対する誤解による以前の回答]

1つの解決策は、スクリプト自体を不変にすることです。chattrただし、名前を変更するのではなく、失われる可能性がある空のファイルの有無に応じてスクリプトを開いて閉じることです。と呼びます snoozebutton。存在する場合、スクリプトは通知しません。存在しない場合、スクリプトはこれを通知します。誰かが誤って削除した場合は安全に失敗します。通知が届きますsnoozebutton

もちろん、スクリプトを頻繁に変更する必要はないと仮定します。これを行うには、小さなユーティリティスクリプトを実行し、chattrエディタを実行してchattr再度実行してロックする必要があります。

関連情報