43
37

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.

rm -rf /は実行されないのが正しい?

Posted at

いくつかのUnixプラットフォームではrm -rf /はエラーになり実行されない。これは余計なおせっかいで実行されるべきだと言う人もいるが、最新のPOSIXに従うのなら「実行されない」のが正しい。POSIX.1-2008ではrmについて、「引数がルートディレクトリを指しているなら、標準エラーに診断メッセージを出力して、それ以上何もしてはならない」と定めている。

if an operand resolves to the root directory, rm shall write a diagnostic message to standard error and do nothing more with such operands.

POSIX.1-2004にはこの記述はないので、最新の規格に従ってないrmではrm -rf /が普通に実行される可能性がある。

実装を調べてみると、2003年12月にリリースされたcoreutils 5.1.0以降のrmでは、--no-preserve-rootオプションを付けない限りrm -rf /は実行されない。すべての現役のLinuxディストリビューションではrm -rf /は実行されないと言っていいだろう。FreeBSD 5.5以降やSolaris 10以降でもrm -rf /は実行されない。しかし、それ以外のプラットフォームでは実行されてしまうようだ。

最新の規格としてはrm -rf /は実行されないことになっているけれども、実行されるプラットフォームも多いので当てにしないほうがいいということになる。

43
37
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
43
37

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?