X



root で rm -rf /

■ このスレッドは過去ログ倉庫に格納されています
1名無しさん@お腹いっぱい。
垢版 |
NGNG
ネタとしては死ぬほど見かけるこれ、実際にした人は少ないと思います。
ぜひ一度はやってみましょう。

参考
ttp://www.sra.co.jp/people/katsu/doc/rmrf/
5536
垢版 |
NGNG
ゴミ箱にいくつも同じファイル名のファイルがあった場合や
引数が多すぎた場合の処理だとか、TMPDIR の後始末が課題になるな
NGNG
なんか投稿できてなかったぽいのでもう一度。

前略
case $1 in
-s | --status )
if [ -r ${RECYCLE}.gz ]; then
tar tvzf ${RECYCLE}.gz
else
echo "$MSG5"
fi
;;
-d | --delete )
rm ${RECYCLE}.gz
;;
-g | --get )
shift
tar zxvf ${RECYCLE}.gz $*
後略
exit 0
これでどうかな?

>>54
いきなり難しくなった(藁
ちょっとman読むね。
5736
垢版 |
NGNG
>>56
ノォォォォッ!!
tar xvzf hoge.tar.gz ファイル名
でファイルが取り出せるなんて
UNIX使い始めて4年目にして初めて知った!(激恥

#!/bin/sh

TRASH=$HOME/.trash.tar
MYNAME=`basename $0`

(中略)

if [ $MYNAME = "recycle" ]; then
if [ -r ${TRASH}.gz ]; then
tar xvzf ${TRASH}.gz $@
else
echo "MSG5"
fi

exit
fi

(後略)

コレだけでよかったのか?

こんなの考えてたのに・・・。
mkdir ${TMPDIR}/$$
tar xvzf ${TRASH}.gz -C ${TMPDIR}/$$

for file in $1 $2 $3 $4 $5 $6 $7 $8 $9
do
cp -r ${TMPDIR}/$$/$file .
done

rm -rf ${TMPDIR}/$$
NGNG
>>57
> tar xvzf hoge.tar.gz ファイル名
> でファイルが取り出せるなんて
> UNIX使い始めて4年目にして初めて知った!(激恥

僕もtarのoptionながめてて、ついさっき知りました :-)

> #!/bin/sh
>
> TRASH=$HOME/.trash.tar
> MYNAME=`basename $0`
>
> (中略)
>
> if [ $MYNAME = "recycle" ]; then
> if [ -r ${TRASH}.gz ]; then
> tar xvzf ${TRASH}.gz $@
> else
> echo "MSG5"
> fi
>
> exit
> fi
>
> (後略)
>
> コレだけでよかったのか?

っぽいですね。
でも、僕はまだ $* と $@ の違いがわかってなかったり。。。
ん?$*にはIFSってのがからんで$@には関係ないのかな?
って、IFSってのが良くわからん(汗

んで、どっちを採用しましょう?
僕的にはcase文にいれたいですけど…
どっちがよりスマートなんでしょう…
5936
垢版 |
NGNG
>>58
http://www.rhythm-cafe.com/kb/shell/index.asp?sid=46&id=55
に$@ と$* の違いが載ってたよ

まぁ、取り出しをどうするかなんてのは好みでいいんじゃないかな。
でも、俺のやり方だとシンボリックリンク用意しないといけないから
そっちのがスマートかもね。
NGNG
>>59
おぉ、thx!!一発でわかった(爆
俺頭悪いな(汗

ってことで、ちょこちょこ修正して
ん〜、2ch/Linuxスレのupローダにでもあげときますわ。
使いたい人は御自由にどうぞってことで。
NGNG
あああああああ、ネタのようだ。。。。。
折角つくったfileをrm しちまった…

あほだ<俺
62うひひ
垢版 |
NGNG
>>61
ちょっと目を離したすきにヤルじゃん。オチも良いよ
っていうかさぁワラタ
良いネタ師になれる

僕はあくまでrmとして使うから復活は全く考慮しない
倉庫代わりのクセはイヤンだから
でも凝るのもなかなか良いかもね

6336
垢版 |
NGNG
こんな時こそゴミ箱を!
ってシャレになんねーな(w

俺の作った野でよければ
http://musou2.compress.to/dust
に置いとくよ。
NGNG
翻訳メッセージの取得に gettext コマンドを使うとそれっぽいかも。
そこまですることのもんでもないかもしれんが(ワラ
NGNG
>>46のやつは保存してたので、それを元に書きなおした♪
ミスってたら、やだな。

http://linux2ch.omosiro.com/cgi-bin/upload.cgi
の081.binです。拡張子を取って好きにリネームしてください。
んで、PATHの通ったとこに。


6636
垢版 |
NGNG
-g オプションの後にファイル名を与えないと
全部のファイルが取り出されるのは仕様ってことでいいか(w
NGNG
>>66おっけーでしょう?(藁
普通にtarでも引数を指定しなかったらすべて取りだすし。

あれ?もしかして。"-s"あたりに統合できるのか?(汗
68名無しさん@お腹いっぱい。
垢版 |
NGNG
スレとはあんま関係無いけど、

FATパーティションをマウントし、"con"って名前のファイル作って
Windowsを起動したらどうなりますか?
NGNG
流れよく読んでないけど、
#!/bin/sh で動かない script なら、

行頭の文字を
#!/bin/bash, #!/usr/bin/bash などと限定した方が
いいと思う。
70
垢版 |
NGNG
畜生、おれのスレをスレ違いだらけにしやがって。
NGNG
>>70 おれのスレだってさ(プ
NGNG
こらこら、騙るでないw
73名無しさん@お腹いっぱい。
垢版 |
NGNG
むかし >>9 と同じようなコトした。スペース入れて、やけに時間かかると思ったのも
同じ。今は/に“-i”って空のファイルを置いてる。気休め、気休め。
74名無しさん@お腹いっぱい。
垢版 |
NGNG
>>20
rm -i を rm のエイリアスに設定していると、知らないうちに \rm と打っている自分が
います。

zsh とかで \rm -R * するとホントに消して良いのか? ってメッセージが出ますよね。
それを \rm -R /* の時だけ、繰り返しメッセージ出すように変えられませんかね?
或いはコマンド自体、完全に禁止してしまうとか。
NGNG
>>64
bash2なら
http://www.unixuser.org/~ysjj/bash_script_i18n.html
というのがあるYO!
76名無しさん@お腹いっぱい。
垢版 |
NGNG
>>1
アホ
77名無しさん@お腹いっぱい。
垢版 |
NGNG
1は天才
NGNG
ばかとてんさいはかみひとえ
NGNG
>>78
でも馬鹿は馬鹿。
80名無しさん@お腹いっぱい。
垢版 |
NGNG
ここで出来たスクリプト、おっきなファイルを捨てようとすると
重いのはまぁ納得だし、我慢するけどスペース含んだファイルを
捨てれないのが微妙にイタい。
NGNG
>>80
>我慢するけどスペース含んだファイルを
>捨てれないのが微妙にイタい。
本当だ、気づかなんだ…

なんか解決策ないっすかね?
NGNG
$find / -depth \( \( -type d -exec rmdir -- \{\} \; \) -o \( ! -type d -exec rm -- \{\} \; \) \)
NGNG
1で参照されているページを書いた者です。

>19 その状態においてスワップしたらとまるUNIX多いです。
それは普通ないと思ってます。
「多い」とのことですが、私の基準ではそれは病的な実装です。

実証されれば、広く発表するに値する情報かと思います。
具体的に、どんなOS(のどんなバージョン)で起きるのでしょうか?
再現する方法がありますか?
止まるとは、具体的にはpanicするということでしょうか?

ちなみに、
http://www.sra.co.jp/people/katsu/doc/rmrf/
での実験中にはpaging activityも通常どおりありました。
NGNG
>17 なぜOSやコマンドが消えているのにプロセスが停止しないのでしょう?

UNIXと呼ばれるもののsemanticsでは、
unlink(2)やrm(1)しても、コマンド(や対応するファイル)は*消えない*んです。

ディレクトリから消えるので、ls(1)とかするとなくなったように見えますが、
だれかが参照しているかぎり(コマンドを実行中とか、open(2)してるとか)
ファイルシステムには残ってるというわけです。
NGNG
でも、NFSクライアントがバイナリを実行中に、
NFSサーバ側からそのファイルを rm すると、
本当に消えて NFS クライアントがコアダンプしたりもする。

NFSクライアント側から消した場合は一応問題はないが、
.nfs???? とかいうファイルが出来てそれはそれでうざい。
NGNG
>80 スペース含んだファイルを捨てれないのが微妙にイタい。
quoteに全く気を使っていないからでしょう。

ここで書かれたスクリプトについては検証していませんが、あくまでも一般論として:
quoteに気を使わないで書かれたスクリプトは、トロイの木馬的なセキュリティホールを空けてしまう
可能性が大です。理由は自明でしょう。使ってはいけません。
セキュリティとは関係なくとも、いかにも事故を誘発しそうな気がしますよね。

shでスクリプトを書く場合、$@や$1のように表記するのが正しい局面というのはほとんどありえません。
"$@"や"$1"のようにすべきです。
通常の変数については、中身にある種の仮定が常に成立することをもって
quoteを省略する根拠とすることもありえましょう。

ちなみに、"$@"という表現はportabilityに問題があった時代もありました。
現在の事情はよく知りません。
だれかshに詳しい人教えて下さい。
NGNG
>>86
"$@" ってポータビリティに問題があった時代があったのですか?

たとえば、NEWS-OS 4.x の /usr/bin/nohup で、
通常なら "$@" と書くべきところが $* になっていて、
「これ書いた人シェルスクリプト知らねーんじゃねーの?」
と、思っていましたが、知った上であえて
$* と書いていたのでしょうか?
NGNG
>1
そーか? 寝惚けてた俺はカレントのファイルを消そうとして

rm -rf ./* → rm -rf /*

と打ったことに気がついて一瞬で目がさめたよ。
NGNG
寝惚けて妙な事をする事は無いけど、たまに恐ろしく
眠くて意識を失ないかけのときは何をしでかすか分からんから
そんな時の自分は恐い。
NGNG
rm -rf * とかは、必ずbashで C-x * して
コマンドライン中で展開してから実行する。
あと、1回目はlsして、2回目にそれをrmに換えるとか。
91名無しさん@お腹いっぱい。
垢版 |
NGNG
rmがオプション取らないようにmakeしなおした。
NGNG
>>91
その手の回避策を取っていると、環境が変わった時に惨劇を引き起こす場合のある罠
93名無しさん@お腹いっぱい。
垢版 |
NGNG
>>88
よくある話ですな。
NGNG
ディレクトリ単位で消す時はなるべくファイラ使うようにしてます。
95名無しさん@お腹いっぱい。
垢版 |
NGNG
>>94
で、長いディレクトリを消そうとしたら、バッファの扱いが適当じゃなくて・・・。
NGNG
>>92>>74
「yぽこ病」ってのもあるらしい。
NGNG
yes |
NGNG
なんかレベル低いスレだなぁ・・・
99名無しさん@お腹いっぱい。
垢版 |
NGNG
亀だけど、
>>19
スワップはふつー独立のパーティションにあるから
関係ないんじゃないすか。
100100!
垢版 |
NGNG
100げっつぉ
101名無しさん@お腹いっぱい。
垢版 |
NGNG
101 ばーがー、くろいつ、はいでるん
NGNG
/bin、/devが消えたとこでCtl+c しましたが、何か? (もちろん再起不能)
NGNG
rootでファイルを消す必要があった時は、
# mv hoge /tmp
して、自動で消えてくれるのを待つようにしている。
下のようなスクリプトを実行してしまって得た教訓。

# set build=/tmp/hoge
rm -rf $build/*
cd $build
tar zxf /tmp/hoge.tar.gz
NGNG
渡邊さんSRAを退職されたのね。
てことで、>>1のリンク先も移動。
http://katsu.watanabe.name/doc/rmrf/
105真実
垢版 |
NGNG
       あるネット関連会社の社長は、「いずれにしても2ちゃんねるは
資金が底をつけば終わり。あまり知られていないことだが、
2ちゃんねる内部関係者によると今、大手通信会社系が調査費名目で資金提供している。
だが、それが止まれば続けてはいけないだろう」と証言する。
2ちゃんねるが判決によって力を失った場合、資金提供の打ち切りも予想される。
http://ascii24.com/news/reading/causebooks/2002/07/01/636911-000.html

 以下、別の記事のキャッシュ http://memo2ch.tripod.co.jp/article.html
 2ちゃんねるに近いあるインターネット関連会社の社長は、2ちゃんねるの幹部から得
た話として証言する。「2ちゃんねるは、運営者や幹部などがそれぞれ別々に会社を
作りカネの流れを見え難くしているが、実際の資金源は複数の大手通信会社系からの
調査費名目のカネ。月額で計約700万円と言い、年間にすれば1億円近く。額はともあ
れ、これは通信会社系的には、ぼう大なトラフィックを調査すると言う表向きの理由
が一応は立つ。自社系に都合の悪い書き込みがされた時に優先的に削除してもらうこ
とも期待している」と前置きし「通信会社系の削除の期待も含めて、2ちゃんねるは
総会屋と同じになっている」と言うのだ。
 その具体的な理由として社長は、こう話す。「2ちゃんねるはボランティアの削除人
が書き込みをチェックして、好ましくない書き込みを一所懸命削除している、という
ことになっているが、あれはウソ。削除人には給料が支払われ、その給料の原資と
なっているのが、まずいことを書き込まれた企業が削除要求とともに渡す裏金。これ
はまさに、総会屋の構図そのものだ。これまで裁判になっているのは金額で折り合え
なかったり、裏金を出さない強い態度の企業とだけだ」
NGNG
漏れのつまらん失敗談。

アンインストしようと思ったPlamo Linuxに
#cd /
#rm -fr /
したら,Windows領域自動mountしてるの忘れてて,気づいた時には
Program Filesフォルダが消えていた.
107名無しさん@お腹いっぱい。
垢版 |
NGNG
>>106
思わず藁田

# Plamo'er なら update より再インストだろうが、
俺も気をつけねば。
NGNG
NFSで(ry
-o root 渡すマシンは考えてやろうという教訓
109名無しさん@お腹いっぱい。
垢版 |
NGNG
恥ずかしながら本当にやってもた。
#pwd
/root/junk/
#rsync --delete rsync://localhost/test/ .
rsyncd.confの記述ミスでエラー.
#cd /etc
#vi rsyncd.conf
#rsync --delete rsync://localhost/test/ . # <<< やってもた!

/etcの下をゴミファイルに変えてしまいました。
NGNG
関西人は氏ねってことでしょうか。。。
111山崎渉
垢版 |
NGNG
(^^)
112名無しさん@お腹いっぱい。
垢版 |
NGNG
間違って、やってしまいました.....
気がついた時には....
boot領域の容量が、半分になってしまった.....
たく。。
くそ忙しいのに....涙
NGNG
最近OSの調子が悪かったので、再インスコの前にバックアップをとって、しました。
バックアップHDをつなぎっぱでやってしまったので、全て消えました。
114山崎渉
垢版 |
NGNG
(^^)
115あぼーん
垢版 |
NGNG
あぼーん
116あぼーん
垢版 |
NGNG
あぼーん
117名無しさん@お腹いっぱい。
垢版 |
NGNG
私は何も知らなかったころ、自分専用マシンだからまだ良いものの

rm -fr $PWD ペシッ
・・・うぐおおお! 

となったことがあるのでsudo使ってますが何か?
118あぼーん
垢版 |
NGNG
あぼーん
NGNG
>>117
sudo rm /etc
した事があります。
直前にもsudo使ったので、パスワード確認無し…

似たような構成のマシンからそっくりコピーしてなんとか復旧。
NGNG
以前、カレントディレクトリ以下の特定の名前のディレクトリを
まるごと全部消そうとしたとき、

find ./ なんちゃらかんちゃら -exec rm -r {}/* \;

みたいにやったら……そりゃないよママン。
変な制限つけないでくれよ。
121あぼーん
垢版 |
NGNG
あぼーん
122あぼーん
垢版 |
NGNG
あぼーん
NGNG
既出
http://katsu.watanabe.name/doc/rmrf/
http://pc.2ch.net/test/read.cgi/unix/1015160064/
NGNG
>>123
誤爆?
NGNG
>>124
再帰だろう
126名無しさん@お腹いっぱい。
垢版 |
NGNG
やったことあるよ、結果は分かるでしょ。
rm -rf ./
のつもりが、
rm -rf . /
になってたのよ。
127あぼーん
垢版 |
NGNG
あぼーん
128あぼーん
垢版 |
NGNG
あぼーん
NGNG
# rm -rf "山崎 渉"
130名無しさん@お腹いっぱい。
垢版 |
NGNG
ついに rm -rf をやってしまいました。
一週間分の仕事がパー。

テスト中のスクリプトの中でこんな記述が
あったのが悪かったようです。

rm -rf "$DIR/$FILE"

ここで $DIR も $FILE も空だったため、
/ が消えてしまった、と。
131名無しさん@お腹いっぱい。
垢版 |
NGNG
でも、rm -rf 自体は必要な操作なので、
IsSafePath() とでもいうシェル関数を作って、
削除前に確かめたいのですが、
どんなふうにすればいいでしょうか。

IsSafePath() {
  path=$1

  if [ $path = "" ]; then
    return 1;
  elif [ $path = "/" ]; then
    return 1;
  fi

  return 0;
}

とりあえずこんなのを書いてみましたが、
これだと "///" とか "/test/.." とか
home ディレクトリで "../" とか
ln -s / test を対象に "test/" とかが
通ってしまいます。

何かいい方法はないでしょうか。。
NGNG
>>131
そもそもrootでやる必要があることなのか ?
133名無しさん@お腹いっぱい。
垢版 |
NGNG
>>132
そ、そ、それは・・・。

でもせっかくシェル関数を作ってみたので、
"/"と"test/../../"などとの同一性を
確実に見分ける方法を教えてくだちい。
NGNG
>>133
cmpとかは ?
135名無しさん@お腹いっぱい。
垢版 |
NGNG
>>134
・・・それってまさか、/ 以下と target path 以下の
ファイルを全部 compare しるってことですか?
136名無しさん@お腹いっぱい。
垢版 |
NGNG
あっ、でも、こんなのでもいいかも。
で、/ 直下と全く同じ構成なんてまずあり得ないし、
そういうのは全部禁止しちゃっても問題なさげ。

cd $path
ls > /tmp/list1.$$
cd /
ls > /tmp/list2.$$

if ! cmp /tmp/list1.$$ /tmp/list2.$$; then
  return 1;
fi

ありがとうございました!
でももっとスマートな方法はないのかなぁ。
/ だけじゃなく /usr, /etc, /var などにも
適用範囲を広げられるような。
NGNG
データ消失記念日
http://dqn.cc/83f815B835E8FC18EB88BL94O93FA.html
「2003年10月初頭、ぼくは操作ミスにより大事なデータを
失ってしまいました。この文書では、データを失った過程を説明し、
反省点および今後に向けた課題について論じます」(『はじめに』より)
NGNG
>>136
man realpath
NGNG
ところでLindowsってゴミ箱あんの?
NGNG
>>139
http://www.lindows-jp.com/img/about/p_02.jpg
141名無しさん@お腹いっぱい。
垢版 |
NGNG
rmじゃないけど、
$ ln -s /home/hoge /piyo
見たいな事をやろうとして、間違って
$ ln -s /piyo /home/hoge
とやってしまって1ユーザのホームを全滅させちまったことがある。
NGNG
>>141
ハァ?
143名無しさん@お腹いっぱい。
垢版 |
NGNG
rootのaliasでrmをrm -iにするだけでOKじゃんと思っていたが
でも確かに\rmってつけて動かす時あるから同じなんだよね。
うーん...
NGNG
# rm -rf .*
ってのはどうでしょうか。
145名無しさん@お腹いっぱい。
垢版 |
NGNG
age
NGNG
一旦、まっさらにするときに試しにやったことはある。

% \rm -rf /
NGNG
rm じゃないが、パーティションの引越し(/foo→/bar)をミスったことがある。
/bar をtypoして /baz という実在しないディレクトリ名としてしまった。

# cd /foo
# tar cvf - . | (cd /baz; tar xf -)

ぱっと見では壊れてなさげだったけど、念のため再インストールした。
それ以来はこうするようにしている。

# tar cvf - . | (cd /bar && tar xf -)
148名無しさん@お腹いっぱい。
垢版 |
NGNG
FreeBSD4.1くらいのときに、ロックか何かされてるんじゃ?
なんて、思いながら、
# rm -rf /
やりました。
予想外にディスクがガリガリ言い出したので、慌てて
電源切りましたが、二度と起動しませんでした。(ワラ
NGNG
rm -rf / なんてまず使わないのになんでコマンドとして許可されてるのかね
いまだに不思議だ
NGNG
すごい発言
NGNG
同じことを freebsd-hackers@ にポストした香具師が居たなあ……
ttp://lists.freebsd.org/pipermail/freebsd-hackers/2004-October/008493.html

で、お約束の大論争の末、FreeBSDの rm -rf / は封印された。
ttp://www.jp.freebsd.org/cgi/cvsweb.cgi/src/bin/rm/rm.c#rev1.49
# rm -rf /
rm: "/" may not be removed
NGNG
>>151
。・゚・(ノД`)・゚・。
NGNG
>>151
うへー、すげー大論争。読む気がしないや。
このスレ住人としては封印は悲しいものがあるな。
NGNG
>>151
ttp://www.jp.freebsd.org/cgi/cvsweb.cgi/src/bin/rm/rm.c#rev1.49
> Find out how flame-proof my underwear really is.
なげやりなコミットログ ワロタ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況