Linux を実行する Synology NAS サーバーがあります。ファイルのバックアップに使用しています。誰かが誤ってファイルを削除することを非常に困難にしたいと考えています。アクセス許可モデルは読み取り/書き込みのみです。ユーザーがファイルをバックアップできるように、書き込みアクセスを許可する必要があります。しかし、ファイルを削除しようとしたときにパスワードなどを入力しなければならなかったようなものが欲しいです。
何か案は?
alias rm="rm -i" を使用すると、ファイルを削除する前にユーザーにプロンプトが表示されます。
免責事項:私はSynology製品に精通していないため、Linux全般についてしか答えることができません。
あなたが求めていることは一般的に不可能です。作成/書き込みアクセス権を持つLinuxシステムでは、削除機能もあることを意味します。削除のための個別の許可ビットはありません。すなわち:
ディレクトリへの書き込みアクセス権があるということは、ファイル自体へのアクセス許可に関係なく、ファイルを作成および削除できることを意味します。
ファイルへの書き込みアクセス権があるということは、ファイルの長さをゼロにするなど、その内容を変更できることを意味しますが、ファイル自体を完全に削除できるわけではありません。
一般に、バックアップアプリケーションには、バックアップを実行する宛先ディレクトリへの完全な再帰書き込みアクセスが必要です。したがって、デバイスにファイルを保存できるすべてのユーザーがそれらを削除できることを期待します。
ユーザーがファイルを簡単に削除せずに保存できるようにする場合、そのような機能は通常、デバイスがファイルシステムへのリモートアクセスを提供するために使用するサーバープロセスに実装する必要があります。考えられるアプローチは、サーバープロセスがバックアップ後にファイルとディレクトリから書き込み権限を自動的に削除し、ユーザーが削除する前に書き込み権限をリセットする必要があるため、誤って削除されないように保護することです。
別の、潜在的により強力なアプローチは、chown
作成後にサーバーにファイルを別のユーザーに渡すことです。したがって、ファイルを削除する前に、誰かが別のアカウントとしてログインする必要があります。これは、さまざまなリモートアクセスプロトコルが設計されていないフープを飛び越えることなく、別のパスワードを使用することを意味する可能性があります。
サーバープロセスにこの機能を提供させることができない場合はcron
、バックアップディレクトリの所有権とアクセス許可を1時間ごとなどに変更するジョブで同様のことを実現できる可能性があります。または、シェルアクセスがある場合はinotify
、ファイルが作成されるとすぐに動作するために使用するシェルベースのデーモンを作成できます。
ちなみに、デバイスがディスクにext3
またはext4
ファイルシステムを使用している場合は、バックアップディレクトリに使用することを検討してください。これにより、ファイルを作成できますが、追加専用( )フラグが設定chattr +a
されている限り削除できません。a
さらにchattr +i
、ターゲットファイルを不変にし、削除や変更を防ぎます。を使用することによって課せられる制限はchattr
、ユーザーを含むすべてのユーザーを拘束しroot
ます。
彼らが完全なシェル アクセス権を持っている場合、それは簡単ではありません。何か違うことをする「rm」と呼ばれるシェルスクリプトを書き、それをユーザーのPATH
前に置くことができます/bin
。明示的なパスなしで「rm」を実行しようとする試みを傍受します。本当に rm コマンドを必要とするユーザーがスクリプトを実行する必要がある場合、問題が発生する可能性があります。または、同様のことを行うシェル関数を作成することもできます。これも優先されます。