FreeBSD QandA 446

FreeBSD QandA

Q. FreeBSD だと、Ctrl + Alt + Del したら誰でも shutdown 出来ちゃうんで
   すが、これを止めることはできませんか?

A. いくつか方法があります.

   A.1 (FreeBSD のバージョンに非依存)
   使っている keymap を書き換えてしまいます。例えば、106 キーボードを使用
   してるならば、(/usr/share/syscons/keymaps/ の下にある) jp.106.kbd の
   'boot' とある部分を 'nop' などに書換えます。
   (この例では 'del' としています。)

     (修正前) 083   del    '.'    del    del    del    del    boot   del     N
                                                              ~~~~
     (修正後) 083   del    '.'    del    del    del    del    del    del     N
                                                              ~~~

   他の keymap でも同様に、'boot' となっている部分を 'nop' とすれば OK で
   す。

   (注意 1)この方法はそのマシンにアカウントがあって kbdcontrol を実行でき
           る人には無力です。
   (注意 2)書き換えに失敗すると、キーボードの刻印と、実際に入力される文字
           の対応が取れなくなります。バックアップを取ってから書き換えをし
           ましょう。

   A.2 (FreeBSD 2.2.5-RELEASE 以前)
   /sys/i386/isa/syscons.c にある関数 scgetc() を書き換えて対処します。

   --- /sys/i386/isa/syscons.c ----------------------------------
               case RBT:
                   shutdown_nice();
                   break;
   --------------------------------------------------------------

   この部分 (FreeBSD-2.2.1R だと 2986 行目付近、
   FreeBSD-2.2.5R だと 3247 行目付近) を次のように書き換えます。

   --- /sys/i386/isa/syscons.c ----------------------------------
               case RBT:
   #ifndef NO_RBT
                   shutdown_nice();
   #endif
                   break;
   --------------------------------------------------------------

   これでカーネルの設定ファイル (/sys/i386/conf/*) に

           options NO_RBT

   をつけて再構築した kernel では、syscons から Ctrl + Alt + Del での
   リブートができなくなります。

   A.3  (FreeBSD-2.2.6-RELEASE 以降)
   カーネルに,
   options         SC_DISABLE_REBOOT
   を加えて, 再構築して下さい.
   Ctrl + Alt + Del でのリブートができなくなります.

間違い・追加情報を見付けた場合は、 修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで お知らせください。