お気に入りの教訓瞬間を共有してみませんか?
chmod 000 /
は機能します。
まあ、完璧に。数分後、私はレスキューCDを探していました。
私が通っていた大学のユーザーコンサルタントとして初めて働き始めたとき、パスワードを紛失したり忘れたりした生徒を支援するための限定的なSudo
権限が与えられました。 Sudo passwd <username>
は私の新しい友達でした。オリエンテーションの1時間後、好奇心がわいてきました。Sudo passwd
と入力し、新しいパスワードの入力を求めるプロンプトを恐怖で見つめました。問題のアカウントを一時的な状態のままにしておくのではないかと考えて(誤って判明した)^C
を少し怖がっていたので、パスワードを入力し、すぐに神聖な階に上ったキャンパスSuperUserの2階のドメイン。メインシステムのrootパスワードを知りたいかどうか尋ねました。
まだ誰もこれについて言及していません。
rm -rf .*
(すべての隠しファイルとサブディレクトリを削除しようとしている間、.
と..
に再帰することを完全に忘れます)
Makefile:
clean:
@rm -f * .o
もちろん、これはmake clean
オブジェクトファイルだけでなく、ソースコードをワイプします。
レッスン:バージョン管理を使用します。
友達に、コンソールアクセスが許可されていないリモートサーバーで:() { :|:&}; :
を実行してもらいました。再起動できませんでした。完全にフリーズしました本番サーバー。
少し読みやすくするために(要求により)分解されました。
:() # 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
、メモリ、および運を注意深く使用することで、正確に再作成し、書き直し、再起動し、希望することができました...そして、それはうまくいきました。
本当に私の瞬間ではなく、誰か他の人の瞬間です。
私が原子力科学の研究施設で働いていたとき、私たちは以前、SunOS、Ultrix、Linuxのコンピュータを数多く走らせていましたが、研究者はそれらのマシンのCPUを共有する必要がありました。個々の研究グループが独自の研究助成金を得たため、彼らは自分のコンピューター、主にSparcStationsを購入し、システム管理を自分たちで行いました。
SunOSはOpenViewデスクトップとニースファイルマネージャーに同梱されていましたが、次のようになっています。
ほとんどの研究者はrootとして実行されていましたが、誰かがルートディレクトリを整頓し、/ bin、/ etc、/ tmpなど、ビューを乱雑にするすべてのものを移動したため、オペレーティングシステムを再インストールする必要がありました。ゴミ箱またはいくつかのサブフォルダ。
他のユーザーは、/ binディレクトリを整理して、知らないコマンドを削除することを選択しました。
幸運な人はバックアップを持っていて、ほとんどがテープドライブを購入していましたが、バックアップ自体を実行するという伝統はありませんでした。
rm -f * ~
そして
rm -rf ${DIR}/
DIR
が設定されていない場合!
90年代の半ばから後半にかけて、私の友人と私はrm -rf *
の愚かさについて話し合い、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
によるものです。
送信しようとしたのを覚えています SysRq リモートマシンへのキーシーケンス...
...しかし、それは地元のものによって捕獲されました。
単純なhalt
が数秒後にローカルシェルにいないことを認識し、本番サーバーの電源を再び入れる可能性がないこと。
学んだ教訓?マシンのプロンプトは次のようになります
[ --> root <-- @kompost:/home/echox] #
いくつかの素敵な赤いマークアップで;-)
私のお気に入りの瞬間は、emacsユーザーである同僚が重要なファイルを編集したいと思ったときでした。
emacs
はタイプするには多すぎるため、emacs
のエイリアスを設定しました。
alias em=emacs
不十分または多すぎるコーヒーの影響下で、彼はもちろんタイプミスem
...
まあ、これはvi
を使用するもう1つの理由です...;)
私が大学時代のコンピュータラボでは、前後に浮かぶボールの束をシミュレートするスクリーンセーバーがありました。彼らは模擬重力でそれぞれを引っ張った。
一度、設定をいじっていると、エラーError: force on balls too great
でクラッシュしました
または、別の経験では、いくつかの簡単な手順で本当に愚かに感じる方法は、個別にはそれほど愚かではないようです。
ステップ1:子供がLinuxボックスを使用したい場合に備えて、子供用のアカウントを作成します。結局のところ、これはホームシステムであり、ネットに公開されていないため、簡単なパスワードを付けてください。
ステップ2:時間が経過するまで待つので、ステップ1を覚えていません。
ステップ3:ファイアウォールでSSHポートを開いて(実際にはルーターのNAT)、sshでログインします。結局のところ、私のアカウントにはかなり良いパスワードがあり、非常に貴重なものは何もないようです。 。
ステップ4:スウェーデンのサイトに行くある種のDOSアクティビティがあることをISPから通知を受ける。それはおそらくWindowsボックスであると想定し、それらを調べて強化します。
ステップ5:ISPから引き続き通知が届きます。詳細を尋ね、スウェーデンのサイトのIPアドレスを取得し、Wiresharkを起動して、攻撃元のボックスを見つけます。
ステップ6:Linuxボックスをクリーンアップし、愚かさを感じます。ログインがルーマニアのアドレスからのものであることを確認します。適切なパスワードのないアカウントを削除します。
私はかつてUnix用のデバイスドライバーを開発していました。ポインタの問題があり、テスト中にカーネルメモリ内の配列の最後を書き始めました。私はこれを見つけるのが遅く、すぐにリセットボタンを押しませんでした。ドライバは、ディスクバッファキャッシュ全体に落書きをしていたため、リセットを押す前にディスクにフラッシュされていました。ブロックの多くはiノードとディレクトリでしたが、ファイルシステムが完全に破壊されました。孤立した6000ファイルがlost+found
あきらめて再インストールする前。幸い、これは単なるテストシステムであり、すべてのファイルが保存されているワークステーションではありませんでした。
私 / etcを削除してから回復しました 。私は自分のレッスンを学んだとは思わない...削除されたものから回復しなければならなかった/bin
も。私がchroot
で作業しているときに起こるようです。
コンピュータサイエンスを勉強して2年目に、fork
を使用して多数のサブプロセスを生成し、それらを「円」内のパイプと通信させて、 1つは「リーダー」である必要があります。
私たちはまだ当時まだ無邪気で、ほとんどの人はLinuxマシンを持っていなかったので、教職員のメインサーバー(公式サイトとスタッフアカウントとサイトもホストしていた)のアカウントに取り組みました。ほとんどの人は宿題をしようとするある段階でフォークボムを書いた。私のグループの半分以上がabusers
ファイルに到達しました。それは非常に長い時間でそのサーバーの最大の負荷でした:)
昨年、私の同僚は、Linuxワークステーションの1つを使用して、dd
コマンドでフラッシュディスクのコピーを作成していました。彼は誤って次のようなものを入力しました。
dd if=flash-image.img of=/dev/sda1
フラッシュドライブではなくマシンのハードディスクを上書きすることで、彼は間違いに気づいたとき、マシンはすでにホースされていました。私たちはボックスを再構築する必要がありましたが、これは当時、すべての開発VMをホストしていたマシンでもありました...
これは昨年私に起こりました。一時変数を使用してサーバーからいくつかのファイルを削除していました:
rm -rf ${prefix}*
何だと思う?変数$prefix
が定義されていません!
あなたは惨事を想像することができます...それはいくつかの非常に重要なファイルが削除される結果になりました。
私はほとんど壊れました Control-C そしてCPUに走ってネットワークケーブルを取り外しました!!
ははは、誰かがすでにこれをしたと思います...
Solarisのrootとして、
$ kill -9 1
...そしてすべてがダウンしました。
私の友人はこのために解雇されました。
私はLinuxクラスの研究助手でした。 su -
を取得していたため、permission denied
ができなくなったため、生徒の1人が私に電話をかけました。 OK、彼女はパスワードを覚えていなかったか、タイプミスした。シングルユーザーモードで再起動してリセットします。何?! su
STILLが機能しませんか?!それは私の意志に頭を下げる必要があります!だから私は彼女がしたことを見つけるためにシングルユーザーモードで再起動します。彼女がchmod -R 777 /var/www/html/drupal-6.19 /
を走らせていることに気づきました
ディレクトリ名と最後のスラッシュの間のスペースに注意してください。
「本当に彼女を再インストールしたくないので、何をどのようにしてやりたいのか」の数分後、/ bin/suに777
のファイル権限があることがわかりました。これは、0777
のファイル権限として読み取ることもできます。これにより、/bin/su
からsetuidビットが削除されます。素早いchmod u+s /bin/su
と私はヒーローでした。
私の大学が独自のCisco LEAP認証を使用するようにワイヤレスネットワークを切り替えることにしたとき...
十分に終わった非常に長い戦闘を開始しました。 Linuxを実行してインターネットにアクセスしたい人のためのドキュメントを作成しました。 6か月後、彼らはPEAPサポートも追加することを決定しました。 フェイススラップ
私が勝ったのでそれは私のお気に入りです。うまくいきました。
git init
git clean -f
これはリポジトリを削除しません。これにより、リポジトリにないものはすべて削除されます。
既存のリポジトリを削除してからもう一度ソース管理を開始しようとすると(プロジェクトの最初のバージョンであるcompletedに対して)、これらの2つのコマンドがコード全体を起動しました。
私が以前働いていた会社の製品がSCOで実行されていました。デモサーバーでアプリケーションが非常に遅くなることについてデバッグを行っていましたが、同時に、今後の新機能に関するデモ/講義を提供されている多くのお客様がいました。
それで、私はスタックするのに使用していたアプリケーションを実行し、根本原因を確認するためにそれに何かをしましたが、それがまだ「スタック」しているので、それを殺そうとしました:
pkill -9 mytestapplication
私が学んだことは、pkillがSCOでLinuxと同じように動作しない)ことを正確に実行しないことです。
...それは基本的にユーザーがアクセスできるすべてのものを殺します、そしてrootで...それがすべてです=)
DebianからUbuntuへの切り替えは、いくつかのファイルとディレクトリを削除しようとした日から始まりました。
rm -r /var/tmp/*
残念ながら、「/ var/tmp /」と「*」の間にスペースを挿入しました。さらに悪いことに、ファイルシステムのルートにいました。
root@workstation:/# rm -r /var/tmp/ *
ご家庭ではおやめください!
1999年のDebianインストール。基本インストール用に14枚のフロッピーディスク。
Xfree86を動作させようとしました。しかし、X
は開始されませんでした。完全に文書化されていなかった、グラフィックカードの設定(メモリ、水平および垂直のリフレッシュレート)を確認する必要がありました。 superprobe
は、正しい内部グラフィックスカードメモリ(1024 kB)を見つけました。
しかし、解像度設定(1024x768)が機能しないことを確認するのに1週間近くかかりました。グラフィックカードがようやく機能するまで(1024x768でbuuuuuug ....)、640x480に切り替える必要がありました。
COM1でシリアルポートマウスを動作させようとしました。それで、マウスを動かしてみました。本を読んで(当時、使用可能な高速インターネットがなかった)、私は
/dev/ttys0
そして、それはうまくいきませんでした。 S
は小文字ではなく大文字で入力する必要があったため、これがわかるまでにもう1週間かかりました...
/dev/ttyS0
「大文字と小文字を区別する」という本当の意味がようやくわかったのはその頃です。
2つのドライブを一度にインストールし、2番目のドライブのルートファイルシステムを/mnt
内のディレクトリにマウントしました。私はそのディレクトリにいてvar
を削除しようとしましたが、代わりにrm -rf /var
と入力してしまいました。 var
mustの前にスラッシュが付いているという本能が発動したようです!
自分のやったことに気づいたらすぐに Ctrl-C 遅すぎた。私のrpm
データベースは、長い間建物を離れていました。私は年齢をかけてすべてを正常に戻しました。
さて、つらい部分についてです。
/mnt
のそのディレクトリに戻り、以前行っていた処理を再開します。何を入力しますか?さて、本能が再び始まったとしましょう。
少なくとも、2回目はシステムをより速く復元できました;)
Bashには、dirname
とbasename
にそれぞれ相当する巧妙なトリックがあります。
${path%/*}
${path##*/}
$path
には末尾にスラッシュが含まれています...
私は CapsLock に ESC システム全体で。私がそれをしたとき、Capslockはオンでした。
再起動すると、CapsLockの永続的な状態が削除されました。にマップされました ESC
それほど苦痛はありませんでしたが、自分のやっていることに気づいたときはバカになりました!
ずっと前に、私はMacにMkLinuxをインストールしていて、コマンド処理を管理するファイル(シェルではなく、もっと基本的なもので、もう何を覚えていないか)を置き換えたかったのです。指示はmv x y
、それで私は慎重になることに決め、rm y
。意図はmv x y
その後、もちろんそれはうまくいきませんでした。再インストールしました。
私は自分の箱のエラーを追跡していませんが、ここ15年前からここに私の2つの仕事の死亡者があります。
1995:標準 'rm -rf
統合NISマスターサーバー+会社の唯一のDNSサーバー+会社のプライマリSMTP/POP3サーバーとして機能する単一のボックス(設計ではありません!)でのrootの失敗。私が覚えているのは、SunOS 4.1.3_U1でした。当然のことながら、ホリフィック犯罪の証人のように、その後の48時間を覚えていません。
1998:立ち上がっていた代替の代わりに、運用AFS(現在はOpenAFS)ファイルサーバーでnewfs(SunOS)を実行しました。午後と夜をテープから復元しました。
鉱山はchmod -R 777 /
:その後、ファイルシステム全体のアクセス許可を復元する方法を理解できなかったため、OSを再インストールしました。
二度とそれをやったことはありません(そのような状況を復元する方法がわかりません)。
chown nobody:nobody /*
もちろんルートとして....
最初のもの
一時的に、一時ファイルのクリーンアップに役立つエイリアスを定義しました。
alias clean_dir_tmp="find /tmp -maxdepth 1 -user **** | grep *** | xargs rm -rf"
そしてもちろん、ある日、エイリアスが何をしていたかを忘れてしまったとき、私はタイプミスをしました:
$ clean_dir_tmp *
何が起こっているのか気づくまでに数秒は時間を失ったと思います... :(
2番目
MacラップトップとUbuntuデスクトップでいつものように作業していました。 Macの外部HD(HFS +ファイルシステム)をUbuntuに差し込んだとき、所有者が?????
。私のUIDはMacとデスクトップで異なっていたため、[ls -l
、それを変更することにしました。
MacでUIDを変更し、大きなchown -R *
UbuntuのHDで。私が知らなかった唯一のことは、LinuxのHFS +ドライバーが安定していないことでした。今日まで、このHDをLinuxまたはMacに再びマウントすることはできませんでした...
Debian dist-upgrade
リモートの本番サーバーで不安定(またはテスト中でしたか?).
libc
からnptl
スレッドへの切り替えに関する警告は無視されました。
インストールが実際にどこで失敗したのかはわかりませんが、ダイヤルアップ回線に1つのルートコンソールがあり、すべてのアプリが爆発していました。実行中のssh
とbash
は1つだけです。
それを回復するのはとても楽しかった。静的にリンクされたdpkg
をアップロードし、libc
をロールバックして、RAIDサポート付きのカスタムカーネルを構築しました。私のダイヤルアップ回線でそれがおよそ3時間かかったと思います。ようやく再起動したところ、fsck
に10分ほどかかりました。私は言うべきかなり痛い10分。
Debianを(net-installを使用して)コンピュータにインストールし、再起動後に、インストールするパッケージを選択することになっている部分を何とかスキップしたことに気付きました。
もちろん、基本的にpwd
、ls
およびcd
のみの非グラフィカルシステムは問題なく動作します;)。
ファイルとそのバックアップコピー(file
とfile~
)を、ほとんど使用しないSuSEシステムから削除したかったのですが、コマンド補完の構成が異なることに気付きませんでした。私はrm fi<tab>
と入力し、カーソルが最後の文字の後に来ることを期待しました。システムは~
ファイルを無視し、ファイル名の後にスペースを挿入しました。
だからタイプしたかった
rm file*
そして私はやった
rm file *
今、私は常に提案された補完が何であるかをチェックしています。
どういうわけか/ devをアンマウントして、マシンを再起動すると永遠にねじ込まれると思った。
神経を破壊する時間は、それを再起動することが安全であるかどうかを考え出そうとして続いた。悪いことは何も起こらなかった。
20分前、他のPCにあるファイルから複雑なディレクトリ構造を入念に再作成していました。私はdu
を実行して、ほぼ完了したかどうかを確認することにしました。サイズを考えると、数分かかることがわかっていたので、コーヒーを飲みに行きました。
私の帰りに、私は深刻な落胆に、走る代わりに
du -hs /path/to/important/folder
ぼんやり走った
rm -r /path/to/important/folder
アーカイブを作成したかった:
tar -cvzf mydir/* mydir.tar.gz
もちろん、mydir/*
はmydir/myfile.cpp mydir/myfile.h
に拡張されました
アーカイブ名はtarの-f
オプションに続くことに注意してください!
MagentoやeZ Publishなどの多くのWebアプリにはvar/cache/
フォルダーがあり、アプリのバックエンドに移動するよりも高速にキャッシュをクリアする方法は次のとおりです。
rm -rf var/cache
これを数回行った後、あなたが常に終わることが科学的に証明されています:
var
の前に/
を追加する教訓:絶対パスを使用して、このコマンドのエイリアスを作成します。
私のお気に入りは、Oracleデータベースのインストール用に新しいSolarisシステムを構築していたときです。彼が行っていたDB最適化作業の真っ只中に、高額なOracleコンサルタントを含むすべてが整っていました。サーバールームにいて、別のサーバーをチェックしていたときに、電源コードをサーバーに接続しました。
最初の元従業員:どうすればいいですか(簡単なこと)?
2番目の元従業員:Sudo rm -rf /
最初の元従業員:ハハOK
...
最初の元従業員(彼がちょうど何かをSudo
edしたことを忘れていたので、再度パスワードを要求しませんでした):ああF ** K !!!
GNUデスクトップにLinuxをインストールしたとき、私はDebianをインストールしましたが、ヘルプはありません。基本的なシステムのみをインストールし、GUIはインストールしませんでした。
"OMFG OMFG今、何をしなければなりませんか?...Windowsに戻る必要があります"
しかし、その後、パッケージのインストール方法(GNU Linuxでは初めて、jose@debian:$
出力のみ、Debianからの一部の読み取りのみ))と名前を覚えましたIRCクライアント:IRSSIと名前:[〜#〜] gnome [〜#〜]をインストールしてから、それらをインストールしました...その日以来、私はすべてのマシンにIRSSIとGNOMEをインストールします...
それは感じます...あなたのコンピュータxDでの良い実験
以前、dd
を使用してUSBサムドライブをゼロにしようとしていました。
言うまでもなく、tty1がルートパーティションからReiserFSエラーを吐き出し始めたとき、私は再インストールする必要がありました...
LinuxからFATドライブを適切にフォーマットするには、パーティションの最初の512バイトを消去する必要がありました。これは、dd
コマンドを使用して行われます。
dd if=/dev/zero of=/dev/hda1 bs=512 count=1
FATパーティションが/dev/hdb1
何が起こったのかは、再起動するまでわかりませんでした。幸いにも、Liloなどを再インストールすることで回復できました。
Fedoraが最初にNouveauドライバーをリリースしたときに、私のNvidiaカード用のXwindowsドライバーを動作させようとしました。過去に何度も行ったように、自分でコンパイルしてインストールするためにNvidiaソースをダウンロードしましたが、このリリースでは、それを機能させることができませんでした。 Fedoraフォーラムで、Nouveauドライバーを完全に無効にし、Nvidiaドライバーを動作させるためのかなりの数の手順がありました。控えめに言ってもかなり苦痛です。
やった chown -R /usr
。なんだかいいアイデアだと思いました。その後、人形スクリプトはいくつかの悪いことを行い、どういうわけか私はSudo
の権利を失いました。
資格のあるシステム管理者がSudo
権限を回復できず、マシンのイメージを再作成する必要がありました。
少し前、私は自分のマシンの1つでいくつかの大規模な構成を行う必要がありました。その大部分は/etc
の一連のファイルの編集に関係していました。私はそれについて本当に注意することに決めたので、etc
ディレクトリを$HOME
に作成し、そこに編集が必要なファイルをコピーして、編集に数時間を費やしました。すべてのファイルを注意深くチェックし、すべての編集が想定どおりであることを確認し、rootとしてログインし、編集したファイルを/etc
にコピーしました。それまでに、夜はとても遅くなりました。引き続きrootとして、クリーンアップすることを決定し、rm -rf etc
の代わりにrm -rf /etc
と入力しました。その夜はあまり眠れなかった。
私は顧客サイトに出ていた同僚と電話でした。彼女は彼らのシステムに取り組んでいて、私は彼女の脳卒中に何をタイプすべきかを伝えていました、私が彼女に言ったときに彼女は私を誤って聞きましたrm -rf .??*
と入力したrm -rf .?*
。しかし、彼女は私が言ったディレクトリにいなかった、彼女はルートディレクトリにいた。ドットファイルだけでなく、OS全体をワイプしました。
「sysadminとして学習」していた頃、私は自分のadduserスクリプトを作成していました(初期のSysVにはありませんでした)。スクリプトのシェルエラー(cat /etc/passwd; echo ...) > /etc/passwd
これはもちろんpasswdファイルをワイプしましたが、誤ってCtrl-Dを押してsuシェルを終了しました。土曜日の午前1時にオフィスに出向いて、起動ディスケットを入手する必要がありました。