時々(通常長期間にわたって)、Linuxシステムを完全に混乱させるコマンドを実行するのが困難になります。
最近、誤ってルートパーティションを再マウントし(再度フォーマットした新しいUSBドライブであると思います)、再帰的にそのパーティションを自分自身に削除しました(再びUSBドライブへのユーザーアクセスを許可しようとしました) 。私がしたこと(進行中)を悟ってこれを中断しましたが、被害が発生しました。多くのコアプログラムはもはやルートの所有ではないので、システムは本質的にゾンビ状態にあります。一部のユーザー機能(ssh、rsync)は引き続き機能しますが、管理レベルの機能は完全にロックされています。インストール、アンインストール、画面セッションへの再接続、再起動などはできません。
このマシンが私のリビングルームに私と一緒にいた場合、「修正」(再インストール)する方がはるかに簡単になります。しかしそれは真実ではない。これは私の弟の家にいました。彼は私が彼を修理/再インストールするのが好きではなく、私はその点を理解しています。だから私は私が被ったダメージを回復するために数日を過ごします(そして管理上の混乱にもっと耐えることができるものをインストールしたいと思います)。
私は質問をするためにこれらすべてを言います。管理者の不正行為を防ぐためにインストールを強化するための推奨方法は何ですか?
考慮されていない、または考慮後すぐに放棄されるもの:
- 管理者が愚かなコマンドを実行できないように強化すること:良い考えですが、人間として後で悪い考えであることに気づくことを時折するので、効果はありません。私がやりたいことは先に進むことです。だから私が愚かなことをしたときに機械がダメだとすれば、「ああ、くそ!
私が考慮したもの:
- ルートパーティションを読み取り専用でマウントする:ルートパーティションを変更から保護します。これは部分的に使用できると予想されていますが、実際にはそうでない場合は否定的な結果につながる可能性があります。また、読み取り/書き込みモードでパーティションが他の場所にマウントされるのを防ぐことも必ずしも可能ではありません。
- 一番上にフェデレーションなどの書き込み可能レイヤーを持つ一種の圧縮された読み取り専用ルートイメージを使用すると、ルートに実際に変更は適用されず、再起動するとエラーが解決されます。変更が必要ない場合は大丈夫です。 /良いに設定してください。ルート、おそらく/ etcは、他の場所の永続ファイルから再ロード/充填することができます。
- 定期的な(おそらく毎日)スナップショットでbtrfsを使用すると、問題が発生した場合の回復がより簡単になります。直接的なユーザー介入が必要なため、まだ最適ではない可能性があり、回復ロールの申し訳ありません変更を介して他の人を導くことができるかどうかわかりません。
- より一般的なディストリビューションではなく、信頼性/予測可能性/セキュリティを念頭に置いて設計された、より「リアルタイム」/「組み込み」Linux/BSDディストリビューションを使用してください。
現状では、おそらくオプション4を使用して、これまで使用してきた完全なDebianインストールよりも制限されたシステムをインストールします。ただし、ファイルサーバーと急流クライアントとしてうまく機能する必要があり、リモートシステムとして自分自身からシステムを保護するのはかなり大きな資産です。
答え1
厳しい事実は、何もあなた自身の愚かさからあなたを守ることができないということです。 DWIM(Do What I Mean)インターフェイスはありません。コンピュータは意図的なものと偶然のものを区別できません。間違ったコマンドの上にどんな抽象化を積んでも、すべてが壊れるでしょう。
簡単な答えは速度を遅くしていることに注意してください。。
答え2
仮想マシンでインストールを実行します。既知の良好な状態のスナップショットを撮ります。危険なことをする前にスナップショットを撮ってください。ホスト環境ではほとんど何もしません。混乱している場合は、ホスト環境にアクセスしてスナップショットを復元してみてください。
答え3
足に銃を撃つのを防ぐことはできません。ルートパーティションはUSBスティックであると思います。重要なマシンを使い捨ての仮想マシンとして簡単に間違えることもできます。 (これは私たち全員に起こります)
重要なことは、コンピュータが提供するサービスを重複させることです。
この場合、2つの別々のパーティションに両方のLinuxバージョンをインストールできます。弟に別のことを始めようと言うことができます。 (ただ考える)
最も重要なことは、バックアップを持って回復戦略を開発することです。
この場合、あなたは弟のコンピュータに責任を負ったので、できるだけ多くのデータを継続的にバックアップし、複数のコピーを保持する必要があります。
また、兄弟にUSB Linuxドライブを提供して起動し、SSHサーバーとパスワードを設定することもできます。コンピュータをUSBから起動するように設定します。その後、緊急事態が発生した場合は、USBスティックを挿入してコンピュータを再起動するように依頼してください。
答え4
root ユーザーとして操作を実行しないでください。通常のアカウントでroot操作を許可するようにsudoを設定しますが、パスワードが必要です。これにより、実際に実行されている作業を確認する最後の機会が得られます。
ただし、root として実行する場合は、対話型の使用を強制する汎用コマンドのエイリアスを設定します。たとえば、削除する前にメッセージが表示されますalias rm="rm -i"
。本当に望むなら、rm
これを明示的に(意識的な決定で)無視することができます。-f
rm *
rm -f *
USBのFSが何なのか言っていませんでした。通常VFATです。各ファイルが特定のユーザーの所有者であるように見えるようにするオプションを使用して、これらのファイルをインストールできます。これにより、実際に実行する必要がなくなり、chown -r ...
エラーの可能性が排除されます。
高い権限で実行していることを知らせるには、ルートシェルプロンプトを赤に設定します。
通常、これにより、パスワードプロンプトやその他の障害物などの一部の操作をrootとして実行することが困難になります。
これで問題を修正したら、他の同様のシステムにアクセスしてそれを使用してfind
SUID / SGIDプログラムを表示できます。次に、コマンドを使用して、破損したディスクをこのディスクと一致させるようにしますchmod
。