GRUBにパスワードを設定して、シングルユーザーモードでの起動を制限する

Linuxをシングルユーザーモードで起動すると、パスワードを入力しなくてもroot権限で動作します。

それでは危険なので、GRUBでシングルユーザーモードに変更する時点で、パスワードを要求するように設定します。

<<事前準備>>

パスワードをMD5で暗号化する。

# grub-md5-crypt
Password: ***
Retype password: ***
$1$rpC4S0$HjOnlwM/GgQghyDH0PlyX.

パスワードを、/boot/grub/grub.conf に書き込む。
また、起動時にGRUB画面で停止させるため、timeout=-1 に変更し、hiddenmenu をコメントアウトします。

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/vda2
# initrd /initrd-version.img
#boot=/dev/vda
default=0
timeout=-1
#splashimage=(hd0,0)/grub/splash.xpm.gz
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=10 serial console
#hiddenmenu
password --md5 $1$rpC4S0$HjOnlwM/GgQghyDH0PlyX.
title CentOS (2.6.18-194.26.1.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-194.26.1.el5 ro root=LABEL=/ console=tty0 console
=ttyS0,115200n8r
initrd /initrd-2.6.18-194.26.1.el5.img

<<シングルユーザーモードでの起動>>

サーバーを再起動します。

p を入力後、パスワードを入力します。

a を入力します。

single と入力し、[Enter]を押下します。

[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename. ESC at any time cancels. ENTER
at any time accepts your changes.]

grub append> ro root=LABEL=/ single console=tty0 console=ttyS0,115200n8r

シングルユーザーモードで立ち上がります。
パスワードを入力しなくても、root権限でログインされています。

sh-3.2#