私の職場のアプリケーションが使用する非常に重要なファイルがありますが、それがまったく削除されないことを確認する必要があります、どうすればいいですか?
私の職場のアプリケーションが使用する非常に重要なファイルがありますが、それがまったく削除されないことを確認する必要があります、どうすればいいですか?
回答:
はい、ファイルの属性を読み取り専用に変更できます。
コマンドは次のとおりです。
chattr +i filename
そしてそれを無効にするには:
chattr -i filename
からman chattr
:
i
属性を持つファイルは変更できません。削除または名前の変更はできません。このファイルへのリンクは作成できず、ファイルにデータを書き込むこともできません。CAP_LINUX_IMMUTABLE
この属性を設定またはクリアできるのは、スーパーユーザーまたは機能を所有するプロセスのみです。
chflags schg
CDに書き込みます。CDをCD-ROMドライブに入れて、そこからアクセスします。
例:
# dd if=/dev/zero of=readonly.img bs=1024 count=1024
# mkfs.ext2 readonly.img
# mkdir readonlyfolder
# mount readonly.img readonlyfolder/
# echo "can't delete this" > readonlyfolder/permanent.txt
# umount readonlyfolder
# mount -o ro readonly.img readonlyfolder
# cat readonlyfolder/permanent.txt
can't delete this
# rm readonlyfolder/permanent.txt
rm: cannot remove `readonlyfolder/permanent.txt': Read-only file system
mount -o remount,rw readonlyfolder/ && rm readonlyfolder/permanent.txt
squashfs
たりcramfs
、圧縮された読み取り専用。ファイルシステムを構築するには特別なツールが必要です。
Linuxのは、いわゆるいるバインドマウントかなり強力で有用な機能ですオプション知っています:
% cd $TMP && mkdir usebindmountluke && cd usebindmountluke
% echo usebindmountluke > preciousfile
% sudo mount -B preciousfile preciousfile
% sudo mount -oremount,ro preciousfile
% echo sowhat > preciousfile
zsh: read-only file system: preciousfile
% rm preciousfile
rm: cannot remove ‘preciousfile’: Read-only file system
—ここで行われているのは、ファイルへのバインドマウントです(はい、Linuxでできます)。その後、R / Oモードで再マウントされます。もちろん、これもディレクトリに対して行うことができます。
ファイルへの複数のハードリンクも作成する必要があります。これらは、通常のユーザーがアクセスできないさまざまな場所にある必要があります。
このように、たとえchattr保護を無効にしたとしても、データは残り、アプリケーションが探している場所に簡単に復元できます。
他の人があなたの質問に答えました。@Svenがコメントで言及したように、「ファイルを決して失わないようにするにはどうすればよいですか?」という質問に対する一般的な解決策です。ファイルのバックアップを作成することです。ファイルのコピーを作成し、複数の場所に保存します。さらに、ファイルが非常に重要であり、会社が重要なデータをバックアップサービスでバックアップするポリシーを持っている場合、このファイルをサービスに含めることを検討できます。
Linuxでは不変フラグは、専用のファイルシステムのいくつかのタイプではサポート(のようなネイティブなもののほとんどされext4
、xfs
、btrfs
...)
サポートされていないファイルシステムでは、別のオプションとして、読み取り専用モードでファイルをそれ自体の上にバインドマウントします。これは、2つのステップで実行する必要があります。
mount --bind file file
mount -o remount,bind,ro file
ただし、起動するたびに、たとえばを介して実行する必要があります/etc/fstab
。
umount
、再び書き込み権限を取得するためにファイルを
ケビンの回答に対するコメントで、ジェリーは次のように述べています。
もちろん、ファイルは定期的にバックアップされているので、ルートユーザーのアクセス許可を持つボックスで作業していることがあるユーザーに対する保護の別のレイヤーが必要でした。–
これは本当に悪い考えなので、このプラクティスを変更できないと仮定します。
読み取り専用デバイスの使用に関する提案にはすべて同じ問題があります。必要なときに正当な変更を加えることがPITAになります。SDカードなどのロック可能なドライブの場合、ロックを解除して変更を加えると突然脆弱になるという問題が発生します。
私が代わりに推奨するのは、別のマシンをNFSサーバーとしてセットアップし、ユーザーがルートを持っているマシンの重要なファイルとディレクトリを共有することです。マウントを読み取り専用として共有します。これにより、信頼できないユーザーがいるマシンが変更を加えることができなくなります。正当に変更する必要がある場合は、NFSサーバーに接続してそこで変更を加えることができます。
これをWebサーバーに使用するため、Webサーバーに対するエクスプロイトが成功しても、サーバーが提供するファイルを挿入または変更したり、構成を変更したりすることはできません。
これは、マウントポイントに関連するすべてのものと同じように回避できることに注意してください。
設計上読み取り専用のISO 9660イメージを作成してみませんか?
ISOイメージをマウントすると、CD-ROMのように見えますが、ハードドライブのパフォーマンスがあり、マウントされたイメージ上のファイルは、物理CD-ROM上のファイルと同じくらい安全に削除されます。
機密ファイルをCDに書き込み、CD-ROMから実行するというアイデアは興味深いものです。ファイルの不変ビットを設定するだけでは十分とは言えません。
物理CDから実行すると、パフォーマンスなどのマイナスの問題が発生する可能性があります(CD-ROMドライブは、ハードドライブやSSDよりもはるかに遅いです)。善意のある人がCD-ROMを取り出して、アクセスが必要な別のディスクに交換する可能性があります。ディスクを取り出して電子レンジ(またはゴミ箱)に放り込むだけで、ファイルが「削除」される可能性があります。その1つのファイルだけに専用のハードウェアCD-ROMドライブを用意する必要があるなどの不便さがあります。
しかし、OPは、悪意のある行為からではなく、偶発的な削除から保護することが主な目的であること、および問題が発生した場合に問題のファイルをバックアップして回復できることを明らかにしましたが、ファイルが誤って削除される。
マウントされたISOイメージからファイルを実行すると、要件を満たすようです。
shred
、その時点でちょうどそれだろう。ただし、マシンへの物理的なアクセスを拒否しない限り、ISOファイルをマウント解除して上書きするよりも、物理CDをドライブから取り出して、ごみ箱に放り込む方が簡単なようです。そしてOPは、重要なファイルは定期的にバックアップされると述べているので、これは悪意のあるいたずらではなく、偶発的な損傷に対する単なる追加の手段です。
chattr +i
役立つかもしれないが、ファイルが同様に読み取り専用(とで上書きすることができようになりますchattr -i
)、また、あなたがSELinuxのなどでそれを保護しようとすることができます