回答:
うまくchmod 000 /
いくかどうか興味 がありました。
まあ、完璧に。数分後、私はレスキューCDを探していました。
私が通っている大学のユーザーコンサルタントとして働き始めたときsudo
、パスワードを紛失/忘れた学生を支援するための制限された権利が与えられました。 sudo passwd <username>
私の新しい友達でした。オリエンテーションの1時間後、私の好奇心が良くなりsudo passwd
、新しいパスワードの入力を求めて入力し、恐怖を凝視しました。私は少しに怖がっていた^C
私は、パスワードを入力し、すぐの神聖な2階ドメインに上の階を歩いたので、私は、過渡状態に問題のアカウントを残すかもしれないという考え方(erroniously、結局のところ)、それから私の方法キャンパスSuperUserを開き、メインシステムのルートパスワードを知りたいかどうかを尋ねました。
passwd
rootとして実行すると、おかしくなります。たとえば、タイプミスチェックに失敗すると、再度尋ねられます。
他の誰もまだこれについて言及していないことに驚いた:
rm -rf .*
(完全にそれがに再帰することを忘れて、すべての隠されたファイルとサブディレクトリを削除しようとしているとき.
と..
)
rm
今それをしません。私はダーウィンを試してみましたが、エラーが出ましたrm: "." and ".." may not be removed
。
.
、..
を使用します.[^.]*
。(まあ、これは実際にはで始まるすべてのファイルを見逃します..
が、通常は1つしかありません。)
.??*
、入力しやすいことです。これは、などの2文字のドットファイルには一致しません.a
が、これらも珍しいです。grep -r .??*
たとえば、ホームディレクトリの構成ファイルを検索します。
メイクファイル:
clean:
@rm -f * .o
もちろん、make clean
オブジェクトファイルだけでなくソースコードを消去します。
レッスン:バージョン管理を使用します。
*
との間のスペース文字に注意してください.o
:() { :|:&}; :
コンソールにアクセスできないリモートサーバーで友人が実行していました。完全にフリーズした運用サーバーを再起動できませんでした。
(要求により)分解して、もう少し読みやすくします。
:() # Define ':' as a function. Every time we say ':' execute the following code block
{ # Start of code block
: # Call ':' again.
| # Pipe output to...
: # Another ':'
& # Disown process.
# All on one line this would read :|:&,
} # End of code block
; # End definition of ':' as a function
: # Call ':'
次のように見る方が簡単かもしれません
bomb() { bomb|bomb& }; bomb
:
と何もしません。そして、メモリをまったく使用せず、フォークをたくさんします。[はい、試しました:)]。ユーザーごとのプロセス数の割り当てにより、影響をブロックできます。
いい意味で、本当にやりました。chmod
ディレクトリを再帰的に試行して、でスワップ./
しました/
。
当然、ルートとしてのみ、真の痛み(したがって悟り)を達成することができます。
別のドライブで作業していると思って、誤ってメインドライブのパーティションテーブルを消去しました。
スクロールバック、df
メモリ、および幸運の慎重な使用により、私はそれを正確に再作成し、書き直し、再起動し、希望することができました...そしてそれはうまくいきました。
dd
パイプされたすべてのシリンダーの最初の4kブロックを読み取りfile -
、スーパーブロック、つまりファイルシステムの開始を見つけました。これはライブCD上にあり、必要なすべてを実行するのに十分なRAMがなかったため(パッケージのインストールを含む)、別のマシンのsshで実行されているプロセスにパイプしました。
sfdisk -O
、常にパーティションテーブルのバックアップに使用しています。参考:cgsecurity.org/wiki/TestDiskは@Neil Mayhewのしたことを自動化できます。
testdisk
私の箱を保存しました
gpart
、ファイルシステムに似ている可能性のあるものを探し、そこからパーティションテーブルを構築します。
本当に私の瞬間ではなく、他の誰かのものです。
核科学研究施設で働いていたとき、私たちは多くのSunOS、Ultrix、Linuxコンピューターを実行していましたが、研究者はそれらのマシンのCPUを共有する必要がありました。個々の研究グループが独自の研究助成金を取得したとき、彼らは自分のコンピューター、主にSparcStationを購入し、システム管理を自分で行いました。
SunOSはOpenViewデスクトップと素敵なファイルマネージャを使用して出荷されていました。これは次のようなものです。
ほとんどの研究者はルートとして実行されていましたが、誰かがルートディレクトリを整理し、/ bin、/ etc、/ tmp、およびビューを混乱させる他のすべてを移動することを決定したため、オペレーティングシステムを再インストールする必要がありましたTrashcanまたはいくつかのサブフォルダー。
他のユーザーは、/ binディレクトリを整理し、知らないコマンドを削除することを選択しました。
幸運な人たちはバックアップを持っていて、ほとんどはテープドライブを購入していましたが、自分でバックアップを実行する伝統はありませんでした。
90年代半ばから後半にかけて、私の友人と私はrm -rf *
、Linuxボックスの愚かさと、どの時点でLinuxボックスが腹を立てるかについて話していました。静的にリンクされたライブラリと動的にリンクされたライブラリに入り、システムがなくてもシステムが十分に生きることができると仮定/lib
し、ワークステーションで名前を変更しました。 悪いことが起こりましたが、損傷を修復しようとするいくつかの開いているコンソールウィンドウが残っていました(シャットダウンはもうオプションではありませんでした)。どのエディターも実行されませんでした。echo
コマンドで見つけることができる難解な使い方は驚くべきことです。
vi
そして、Caps-Lock対/etc/passwd
su -
vi /etc/passwd
。そこにはありませんvipw
し、とにかく「私達はちょうどマイナーな編集を作っています」。これを一度やった。驚くべきことに、システムは数か月間機能し続けました。Cronjobsは正常に実行され、ログファイルにエラーは目立ちませんでした。
数か月後にシステムを再起動し、コンソールにログインできなくなるまで、この問題に気付きませんでした。ps
ユーザー「root」ではなく、UID「0」が所有するジョブの束を示しました。
あなたはrootでログインしていない、また実行することができませんでしたsu
かsu -
、そして何があったsudo
このボックスに。フロッピードライブはなく、CD-ROMはバストされ、USBポートはありませんでした(したがって、外部CD-ROMはありませんでした)。rootのパスワードを入力する必要があるため、シングルユーザーモードは機能しませんでした/etc/passwd
。
私のお気に入りの瞬間は、emacsユーザーである同僚が重要なファイルを編集したいときでした。
入力するのemacs
が多すぎるため、次のエイリアスを設定しましたemacs
。
alias em=emacs
コーヒーが足りない、またはコーヒーが多すぎるという影響下で、彼はもちろんタイプミスをしましたem
...
まあ、これは使用するもう一つの理由vi
です...;)
alias e=emacs
。
または別の経験、個々にそれほど愚かではないいくつかの簡単なステップで本当に愚かであると感じる方法。
ステップ1:Linuxボックスを使用したい場合に備えて、子供のアカウントを確立します。結局のところ、これはホームシステムであり、ネットに公開されないため、簡単なパスワードを指定します。
ステップ2:時間が経過するので、ステップ1を覚えていない。
ステップ3:ファイアウォールでSSHポート(実際にはルーターのNAT)を開いてsshします。結局、私のアカウントはかなり良いパスワードを持っているので、とてつもなく価値のあるものはありません。
ステップ4:ISPからスウェーデンのサイトに行くDOS活動があることの通知を受け取ります。おそらくWindowsのボックスであると仮定し、それらを調べて強化します。
ステップ5:ISPからまだ通知されている通知を受け取ります。詳細を尋ね、スウェーデンのサイトのIPアドレスを取得し、Wiresharkを起動して、攻撃元のボックスを見つけます。
ステップ6:Linuxボックスをクリーンアップして、愚かさを感じます。ログインがルーマニアのアドレスから来たことを確認します。適切なパスワードのないアカウントを削除します。
私はかつてUnix用のデバイスドライバーを開発していました。ポインタの問題があり、テスト中にカーネルメモリ内の配列の終わりを書き始めました。私はこれを見つけるのが遅く、すぐにリセットボタンを押しませんでした。ドライバーは、ディスクバッファーキャッシュ全体に走り書きしていたので、リセットする前にディスクにフラッシュされました。ブロックの多くはiノードとディレクトリであり、最終的にはファイルシステムが完全に破壊されました。私lost+found
はあきらめて再インストールする前に、6000個の孤立したファイルが置かれたと思います。幸いなことに、これはテストシステムのみであり、すべてのファイルを含むワークステーションではありません。
/ etcを削除してから回復しました。レッスンを学んだとは思わない...削除されたものから/bin
も回復しなければならなかった。で作業しているときに起こるようchroot
です。
昨年、私の同僚がLinuxワークステーションの1つを使用して、dd
コマンドを使用してフラッシュディスクのコピーを作成していました。彼は誤って次のようなものを入力しました。
dd if=flash-image.img of=/dev/sda1
フラッシュドライブの代わりにマシンのハードディスクを上書きするというミスに気付いたとき、マシンは既にホースで接続されていました。私たちはボックスを再構築する必要がありましたが、それは当時私たちの開発VMのすべてをホストしていたマシンでもありました...
dd
!!! :
コンピューターサイエンスを勉強してから2年目に、多くのサブプロセスを生成fork
し、「円」内のパイプと通信し、どちらが「リーダー」であるかを判断するプログラムをCで記述する宿題を与えられました。「。
当時はまだかなり初心者で、ほとんどの人はLinuxマシンを持っていなかったので、教員のメインサーバー(公式サイトとスタッフアカウントおよびサイトもホストしていました)でアカウントに取り組みました。ほとんどの人は宿題をしようとするある段階でフォークボムを書きました。私のグループの半分以上がabusers
ファイルにアクセスしました。それはあっという間にそのサーバーの最大負荷でした:)
私はLinuxクラスのラボアシスタントでした。彼女はもはや可能性があるため、生徒の一人は、私を呼ばないsu -
彼女はなっていたのでpermission denied
。OK、彼女はパスワードを間違えた/タイプミスしました。シングルユーザーモードで再起動してリセットします。何?!su
それでも動作しませんか?!私の意志に屈する必要があります!そこで、私はシングルユーザーモードで再起動して、彼女が何をしたかを調べました。彼女が走ったことに気づいたchmod -R 777 /var/www/html/drupal-6.19 /
ディレクトリ名と最後のスラッシュの間のスペースに注意してください。
「私は本当に彼女を再インストールしたくないので、これは何をどのようにしたいのか」という数分後、/ bin / suにのファイル許可があることがわかりました777
。それはのファイル許可として読むこともできます0777
、それはからsetuidビットを取り除き/bin/su
ます。素早くchmod u+s /bin/su
、私はヒーローでした。
ないその痛い...でも楽しい小さな瞬間:
私が誤って入力しましたls
としてsl
及びシステム管理者が持っていたことが判明何かそのような場合のためにインストールします。
git init
git clean -f
これはリポジトリを削除しません。これにより、リポジトリにないすべてのものが削除されます。
既存のレポジトリを削除してから(プロジェクトの最初のバージョンの完成版で)ソース管理を再開しようとすると、これら2つのコマンドはコード全体を無効にしました。
私が働いていた会社の製品はSCOで稼働していました。デモサーバー上でアプリケーションの動作が非常に遅くなることについてデバッグを行っていましたが、同時に、今後の新機能に関するデモ/講義を受けているお客様がたくさんいました。
だから、私はスタックしていたアプリケーションを実行し、根本的な原因を確認するために自分のことをしましたが、それがまだ「スタック」しているので、私はそれを殺そうとしました:
pkill -9 mytestapplication
私が学んだことは、pkillはSCOでlinuxとはまったく同じではないということです=)
...基本的に、ユーザーがアクセスできるすべてのものを削除し、rootで...それがすべてです=)
1つのポイントに2つのドライブをインストールし、2番目のドライブのルートファイルシステムを内のディレクトリにマウントしました/mnt
。私はそのディレクトリにいて、削除しようとしましたvar
が、rm -rf /var
代わりに入力しました。いくつかの本能は、スラッシュが先行しvar
なければならないということでキックするように見えました!
私がやったことを理解したとき、私はすぐに打っCtrl-Cたが、手遅れだった。私のrpm
データベースは、建物を離れてから長い間ありました。何年もかけてすべてを正常に戻しました。
痛みのある部分です。
そのディレクトリに戻って、/mnt
今までやっていたことを再開します。何を入力しますか?さて、本能が再び作動したとだけ言っておきましょう。
少なくとも2回目にはシステムをはるかに速く復元することができました;)
rm
コマンドに関係しているか。または悲しい。