Linux-ルートでもファイルが削除されるのを防ぐ/保護する方法はありますか?


89

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

linux  files 

13
あなたはそれを復元することができますので、バックアップを作成します...それ以外は、chattr +i役立つかもしれないが、ファイルが同様に読み取り専用(とで上書きすることができようになりますchattr -i)、また、あなたがSELinuxのなどでそれを保護しようとすることができます
スヴェン

43
ルートは、ルートでさえ殺すことができないプロセスを作成できますか?
マークガブリエル14

4
@MarkGabrielはい。フォーク爆弾。:)
reirab


8
ハードウェア管理者が来て、ディスクを取り出し、細断し、残りを燃やし、ホグに餌を与えるかもしれません。または、C(++)プログラマーが鼻の悪魔を誘発する場合があります。あなたにとって重要なものは何でも、それをバックアップしてください。二回
パベル14

回答:


133

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

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

chattr +i filename

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

chattr -i filename

からman chattr

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


11
興味のある方は、bsdに相当するものはchflags schg
Andrew Domaszek 14

85
ルートアクセス権を持つユーザーはそのフラグを設定解除してからファイルを削除できることに注意してください。これは偶然に起こることはほとんどありませんが、意図的な削除を防ぐものではありません。
付与

6
@ Grant。Securelevelが十分に高く設定されている場合ではありません。ブートプロセスは、ネットワークが有効になる前にsecurelevelを2に設定するため、フラグをリセットするにはローカルマシンへのアクセスが必要です(ただし、その時間より前にブートプロセスで使用されるファイルも不変である必要があります)。
サイモンリヒター14

16
@Grant極端なものにしたい場合、パーティションが削除されるか、ディスクが炉に入れられるか、陽子が10 ^ 30年で崩壊するのを防ぐことはできません...
Hagen von Eitzen 14

2
@Itai Ganot man 4日前に読んでいたらいいのに。私が受けた試験で質問だった= /
vfbsilva 14

84

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


15
箱から出して考えて+1。そして、afaik、それはまた、いくつかの状況で以前に使用されました(CDが入ったブラックボックスcdromドライブが目的地に出荷されました)。とにかく誰かがドライブを切断できる場合は適切ではないかもしれません。
アレックスマッツァリオル14

1
キス大好き!+1
MonkeyZeus 14

2
それがこの質問に対する正しい答えだと思います。ファイル属性(chattr -i)を変更しても、悪意のあるアクションを防ぐことはできません。
ブルーノフォンパリ14

7
最近では、内蔵のカードリーダーにフルサイズのSDカードを搭載する方がより良いソリューションになる可能性があります。低消費電力、多くの場合のアクセスの高速化、書き込み禁止の耐久性です。
クリスH 14

3
@ jpmc26したがって、CD-ROMドライブ。これらは読み取り専用です。
トールビョーンラウンアンデルセン14

29
  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

3
mount -o remount,rw readonlyfolder/ && rm readonlyfolder/permanent.txt
カズウルフ14

3
ビットさらにこれを取ると、あなたが使用することができsquashfsたりcramfs、圧縮された読み取り専用。ファイルシステムを構築するには特別なツールが必要です。
ザンリンクス14

7

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


6

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

このように、たとえchattr保護を無効にしたとしても、データは残り、アプリケーションが探している場所に簡単に復元できます。


11
ハードリンクはファイルの内容を保護しません。
200_success 14

ただし、元の質問であった削除からの追加の保護を提供します。
バーベキュー14

2
@barbecueアプリケーションが検索する名前でファイルのリンクが解除されている場合、ファイルのコンテンツが他の名前で存在していても問題ありません。予想される名前のファイルを探している場合、ファイルはまだ削除されています。
CVn 14

5

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


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

5

Linuxでは不変フラグは、専用のファイルシステムのいくつかのタイプではサポート(のようなネイティブなもののほとんどされext4xfsbtrfs...)

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

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

ただし、起動するたびに、たとえばを介して実行する必要があります/etc/fstab


私は誰を願ってumount、再び書き込み権限を取得するためにファイルを
whoan

3

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

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

これは本当に悪い考えなので、このプラクティスを変更できないと仮定します。

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

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

これをWebサーバーに使用するため、Webサーバーに対するエクスプロイトが成功しても、サーバーが提供するファイルを挿入または変更したり、構成を変更したりすることはできません。

これは、マウントポイントに関連するすべてのものと同じように回避できることに注意してください。

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

重要なファイルを定期的にバックアップし、誤って削除しないように元のファイルを保護することも「本当に、本当に悪い考え」なのはなぜですか?OPの元の質問と、参照した回答に対するOPのコメントから、懸念は悪意のあるアクティビティではなく、偶発的/無能なアクティビティであることは明らかです。
クレイグ14

1
@Craig:多くのユーザーをrootにすることは、特に重要なファイルを混乱させないことが信頼されていない場合、悪い考えです。
ジョーH. 14

ああ...まあもちろんです。:-)しかし、それはOPの質問の核心ではありませんでした。OPは、ファイルを誤って削除しないように保護する必要があるルートアクセス権を持つユーザーがいると断言しました。
クレイグ14

@Craig:それは問題の核心ではないかもしれませんが、それはある問題(XYの問題?)の核心...しかし、彼らがsetuidの使用を作ることができるので、もし私は、彼らがルートとしてやっていることはわかりませんおよび/または制限されたsudo権限。ジェリーは意図しない削除から保護しようとしているだけだという言及はないので(「私はそれがまったく削除されないことを確認する必要がある」)、彼は私に1回だけフォローアップを行いました。を参照してください(これが私の応答をトリガーしました)。
ジョーH. 14


2

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

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

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

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

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

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


1
ルートは、画像を直接操作することでファイルを削除できます。たまたまマウントされているのは通常のファイルです。
トールビョーンラヴンアンデルセン14

@ThorbjørnRavnAndersenどうやって?設計上のISO 9660は不変です。その変更を行う当事者は、ISOファイル全体を削除して置き換える必要があります。彼らがそうすることができなかったわけではありません。しかし、その場合でも、とてつもない専門知識がなければ、1つのファイルを挿入して外科的に削除することはできませんでした。ドライブから物理CD-ROMを取り出して、ごみ箱に放り込む方がはるかに簡単です。;-)
クレイグ14

洗練する必要はありません-画像ファイルをゼロで上書きするだけです。
トールビョーンラウンアンデルセン14

@ThorbjørnRavnAndersen私はその点を十分に簡単に認めます。注意点は、意図的にイメージをマウント解除して上書きする必要があるということです。徹底的なパープはshred、その時点でちょうどそれだろう。ただし、マシンへの物理的なアクセスを拒否しない限り、ISOファイルをマウント解除して上書きするよりも、物理CDをドライブから取り出して、ごみ箱に放り込む方が簡単なようです。そしてOPは、重要なファイルは定期的にバックアップされると述べているので、これは悪意のあるいたずらではなく、偶発的な損傷に対する単なる追加の手段です。
クレイグ14

ISO9660イメージは、変更できないはずのイメージを変更する方法を指摘しました。私のポイントは、少しでも書き込み可能であれば、rootが書き込むことができるということです。
トールビョーンラウンアンデルセン14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.