5
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

実行してはいけないLinuxコマンド

Last updated at Posted at 2018-09-24

はじめに

本記事は、実行してはいけないLinuxコマンドについての特集です。
なお、本記事執筆の環境はCentOSになります。Ubuntuの場合は出力されるメッセージが違います。

rm -rf /

結論から言うと今どきのLinuxの場合、実行できません。
実行する場合は以下のようにオプションが必要です。

  • rm -rf / --no-preserve-rootの実行例
[root@localhost ~]# rm -rf / --no-preserve-root

上記コマンドにより/boot/grub2配下のブートローダに関するファイルが削除されると、正常起動ができなくなります。

ちなみにrm -rf の場合、以下のように警告が表示されるだけで実行はされません。

  • rm -rf / の実行例
[root@localhost ~]# rm -rf /
rm: `/' に関して再帰的に操作することは危険です
rm: このフェイルセーフを上書きするには --no-preserve-root を使用してください

fork爆弾

fork爆弾とはひたすら、プロセスをforkする処理を行うことで、新しいプロセスの生成を困難にさせたりして、システムを正常に利用できない状況にします。実行すると急激にサーバ負荷が発生し、コンソールでの一切の操作がきかなくなります。

fork爆弾の実行例

[root@localhost ~]# :(){ :|:& };:
[1] 2063

fork爆弾実行後、以下の様なメッセージが出力される。forkをひたすら繰り返し、これ以上forkができないことを意味している。

-bash: fork: retry: 子プロセスがありません
-bash: fork: retry: 子プロセスがありません
-bash: fork: retry: 子プロセスがありません
-bash: fork: retry: 子プロセスがありません
-bash: fork: retry: 子プロセスがありません
-bash: fork: retry: 子プロセスがありません
-bash: fork: retry: 子プロセスがありません
-bash: fork: retry: 子プロセスがありません
-bash: fork: retry: 子プロセスがありません
-bash: fork: retry: 子プロセスがありません

fork爆弾の実行時のvmstatの様子。CPU及びメモリが急激に上昇し、一気に高負荷状態になる。

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 275420    876 129820    0    0     0     0   38   61  0  0 100  0  0
 0  0      0 275420    876 129820    0    0     0     0   26   50  0  1 99  0  0
 1  0      0 275420    876 129828    0    0     0     0   45   64  0  0 100  0  0
 0  0      0 275420    876 129828    0    0     0     0   30   52  0  0 100  0  0
 0  0      0 275420    876 129828    0    0     0     0   42   62  0  0 100  0  0
 1  0      0 275420    876 129820    0    0     0     0   56   64  0  1 99  0  0
204  0      0 235252    876 137256    0    0     0     0  289  382  4 24 72  0  0
651  0      0 137356    876 157748    0    0     0     0  717  505 10 90  0  0  0
1004  0      0  59356    876 175824    0    0     0     0  609  399 11 89  0  0  0
1267  0      0   4716    876 181460    0    0     0     0  532  289 10 90  0  0  0
211 1298   1104   4660      0 115148   32 36268 18824 36340 1835 28627  6 94  0  0  0
1520 1661  75092   5900      0 127460  248 38852  6292 38852 2477 60139  3 97  0  0  0
43 1833  85876   9332      0 128604  748 10940  4628 10940 1457 86747  1 99  0  0  0
24 1853  91012  10388      0 127756   68 5184  1564  5186  935 50949  0 100  0  0  0
98 1911  97872   4916      0 129368 1128 6952  1192  6952 1638 70752  2 98  0  0  0
114 1623 251996 155388      0 135796 588188 358116 691149 358159 58132 551952  1 93  0  5  0
207 1224 244004  49152      0 136032 25156 1112 30136  1232 67122 585645  1 79  0 20  0
66 1232 240756  34620      0 134448 8204  408  8444   408 2866 16373  4 96  0  0  0
154 1043 233940   9144      0 135904 9900  552 11464   552 2595 12320  6 94  0  0  0
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
198 1315 232284  10024      0 137320 2924  524  4348   884 1889 25220  2 98  0  0  0
1691 1734 231520  11500      0 137580 3088  736  3088   736 1252 16318  1 99  0  0  0
2028 1879 232012  12872      0 138816 5376 1744  5704  1744 3022 13647  0 100  0  0  0
143 1956 231952  10304      0 138176 4552  820 11328   820 1463 53474  1 99  0  0  0
49 2039 231748   5624      0 140080 1456  816  1456   816 1401 54492  1 99  0  0  0
48 2031 232760   7040      0 138852 1528 5308  8180  5308 1656 34979  0 100  0  0  0
2080 2076 238196  15220      0 138748  888 8528 11000  8532 2091 91483  1 99  0  0  0
2083 2046 256724  22772      0 145816 2352 12464 15176 12464 2490 22772  0 100  0  0  0
72 2031 261412  25544      0 145748 1740 5352  2136  5376 1204 18799  0 100  0  0  0
527 2019 265736  19900      0 143416 3092 4896  3092  4896 1210 17281  0 100  0  0  0
131 2125 278464  23964      0 143976 6208 20036 11400 20036 3658 59955  1 99  0  0  0
114 2225 287880  12692      0 148656 3928 5004  6020  5004 1989 17866  1 99  0  0  0
87 2206 294004  14740      0 148444 1468 6296  1468  6296 1130 70327  0 100  0  0  0
47 2241 298996  18812      0 149968 1492 5624  7084  5644 1326 22892  1 99  0  0  0
78 2227 301280  16884      0 153700  692 2468  6872  2468 1196 18101  0 100  0  0  0
84 2240 304520  20756      0 154208  444 3420  1136  3420 1109 18148  0 100  0  0  0
74 2254 308756  22508      0 153660 1920 4516  2756  4536 1107 18298  0 100  0  0  0
118 2243 313164  27644      0 152420 3084 5064  3084  5064 1417 26230  1 99  0  0  0
88 2260 318648  28328      0 152660 2000 6108  2000  6108 1035 32149  0 100  0  0  0

fork爆弾の実行例2

[root@localhost ~]# f(){ f|f& };while :;do f;done
[1] 2065
[2] 2067
[3] 2069
[4] 2071
[5] 2073
[6] 2075
[7] 2077
[8] 2079
[9] 2081
[10] 2083
[11] 2085
[12] 2087
[13] 2089
[14] 2091
[15] 2093
[16] 2095
[17] 2097
[18] 2099
[19] 2173
[20] 2175
[21] 2177
[22] 2179
[23] 2181
[24] 2183
[25] 2185
[26] 2187
[27] 2189
[28] 2191
[29] 2193
[30] 2195
[31] 2389
[32] 2391
[33] 2393
[34] 2395
[35] 2397
[36] 2399
[37] 2807
[38] 2809
[39] 2811
[40] 2813
[41] 2815
[42] 2817
[43] 2819
[44] 3667
[45] 3669
[46] 3671
[47] 3673
[48] 3675
[49] 3677
[50] 3679
-bash: fork: retry: 子プロセスがありません
-bash: fork: retry: 子プロセスがありません
-bash: fork: retry: 子プロセスがありません
-bash: fork: retry: 子プロセスがありません
-bash: fork: retry: 子プロセスがありません
-bash: fork: retry: 子プロセスがありません
-bash: fork: retry: 子プロセスがありません
-bash: fork: retry: 子プロセスがありません
-bash: fork: retry: 子プロセスがありません
-bash: fork: retry: 子プロセスがありません

先ほどと同様に実行すると一気に高負荷状態になり、しばらくすると終了する。

-bash: fork: リソースが一時的に利用できません
-bash: fork: retry: リソースが一時的に利用できません
-bash: fork: リソースが一時的に利用できません
-bash: fork: retry: 子プロセスがありません
-bash: fork: リソースが一時的に利用できません
-bash: fork: リソースが一時的に利用できません
-bash: fork: リソースが一時的に利用できません
-bash: fork: リソースが一時的に利用できません
-bash: fork: retry: 子プロセスがありません
-bash: fork: retry: 子プロセスがありません

[45]   Terminated              f | f
[46]   Terminated              f | f
[48]   Terminated              f | f
[50]-  終了                  f | f
[51]+  Terminated              f | f

おわりに

ワンライナーでいとも簡単にサーバを危険に陥れることができるため、サーバへの侵入をさせないことが第一である。

5
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?