web-dev-qa-db-ja.com

Linux-rootによってもファイルが削除されないようにする/保護する方法はありますか?

私の職場のアプリケーションが使用する非常に重要なファイルがあります。ファイルがまったく削除されないようにする必要があります。どうすればよいですか?

89
user256033

はい、ファイルの属性を読み取り専用に変更できます。

コマンドは次のとおりです。

chattr +i filename

そしてそれを無効にする:

chattr -i filename

man chattr から:

i属性を持つファイルは変更できません。削除または名前を変更することはできません。このファイルへのリンクを作成したり、ファイルにデータを書き込んだりすることはできません。スーパーユーザーまたはCAP_LINUX_IMMUTABLE機能を持つプロセスのみが、この属性を設定またはクリアできます。

133
Itai Ganot

それをCDに書き込みます。 CDをCD-ROMドライブに挿入し、そこからアクセスします。

  1. ファイルシステムイメージを作成します。
  2. イメージをマウントします。
  3. マウントされたイメージにファイルをコピーします。
  4. イメージをマウント解除し、読み取り専用として再マウントします。
  5. 削除できなくなりました。

例:

# 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
29
Ken A

Linuxには、いわゆるbind-mountオプションがあり、かなり強力で便利な機能 知っていること

%  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モードで再マウントされます。もちろん、これはディレクトリに対しても行うことができます。

7
poige

ファイルへの複数のハードリンクも作成する必要があります。これらは、通常のユーザーがアクセスできないさまざまな場所にある必要があります。

これにより、チャット保護機能を無効にしても、データは残り、アプリケーションが探している場所に簡単に復元できます。

7
andrew

Linuxでは、immutableフラグは、一部のタイプのファイルシステム(ext4xfsbtrfs...などのネイティブファイルシステムのほとんど)でのみサポートされています。 )

サポートされていないファイルシステムでは、別のオプションとして、ファイルを読み取り専用モードでバインドマウントすることができます。これは、次の2つの手順で行う必要があります。

mount --bind file file
mount -o remount,bind,ro file

ただし、たとえば/etc/fstabなどを使用して、起動するたびに行う必要があります。

5
sch

他の人があなたが質問したようにあなたの質問に答えました。 @Svenがコメントで述べたように、「ファイルを失わないようにするにはどうすればよいですか?」ファイルのバックアップを作成することです。ファイルのコピーを作成し、複数の場所に保存します。さらに、ファイルが非常に重要であり、会社がバックアップサービスを使用して重要なデータをバックアップするポリシーを持っている場合は、このファイルをサービスに含めることを検討してください。

5
Kevin

Kevinによる回答 へのコメントで、ジェリーは次のように述べています。

もちろん、ファイルは定期的にバックアップされていますが、rootユーザーのアクセス許可を使用してボックスで作業しているユーザーに対する保護の別のレイヤーが必要でした。 –

これは本当に悪い考えなので、この方法を変更することはできないと思います。

読み取り専用デバイスの使用に関するすべての提案には同じ問題があります-必要なときに正当な変更を行うことがPITAになるからです。 SDカードなどのロック可能なドライブの場合、変更を解除するためにロックを解除すると、突然脆弱になるという問題が発生します。

代わりに私がお勧めするのは、別のマシンをNFSサーバーとしてセットアップし、重要なファイルとディレクトリをユーザーがrootであるマシンに共有することです。マウントを読み取り専用として共有し、信頼できないユーザーがいるマシンが変更を加えることができないようにします。正当な変更が必要な場合は、NFSサーバーに接続して変更を加えることができます。

これをウェブサーバーに使用しているため、ウェブサーバーに対する悪用に成功しても、サーバーが提供するファイルを挿入または変更したり、設定を変更したりすることはできません。

これは、マウントポイントに関連するマウントポイントと同じようにバイパスされる可能性があることに注意してください。

  • 保護されたディレクトリのコピーを作成します
  • ディレクトリをアンマウントします
  • マウントの代わりにコピーを移動するか、そのマウントに十分なスペースがない場合は、シンボリックリンクでコピーします。
3
Joe H.

設計上読み取り専用であるISO 9660イメージを作成しませんか?

ISOイメージをマウントすると、CD-ROMのように見えますが、ハードドライブのパフォーマンスがあり、マウントされたイメージ上のファイルは、物理CD-ROM上のファイルと同じくらい安全に削除できます。

機密ファイルをCDに書き込み、CD-ROMから実行するという考えは、ファイルの不変ビットを設定するだけでは十分でないと想定して、興味深いものです。

パフォーマンスを含む物理CDからの実行には、潜在的なマイナスの問題があります(CD-ROMドライブは、ハードドライブやSSDよりもはるかに遅くなります)。 CD-ROMが善意のある個人によって削除され、アクセスが必要な別のディスクと交換される可能性があります。悪意のあるパーティがディスクを取り出して電子レンジ(またはゴミ箱)に投げ込むだけでファイルが「削除」される可能性があります。その1つのファイルだけのために専用のハードウェアCD-ROMドライブが必要になるなどの不便があります。

しかしOPは、主な目的は悪意のある行為からではなく、偶発的な削除から保護することであり、問​​題が発生した場合に問題のファイルがバックアップされ、回復可能であることを明確にしましたが、ファイルは決して誤って削除される。

マウントされたISOイメージからファイルを実行すると、要件を満たすようです。

2
Craig