You may be interested in how to prevent ordinary users from doing whatever they like, if you share your computer with other people. So this chapter describes how to improve the security of GRUB.
One thing which could be a security hole is that the user can do too
many things with GRUB, because GRUB allows to modify its configuration
and run arbitrary commands at run-time. For example, the user can read
even `/etc/passwd' in the command-line interface by the command
cat
. So it is necessary to disable all the interactive
operations.
Thus, GRUB provides password feature, so that only administrators
can start the interactive operations (i.e. editing menu entries and
entering the command-line interface). To use this feature, you need to
run the command password
in your configuration file, like
this:
password PASSWORD
If this is specified, GRUB disallows any interactive control, until you press the key p and enter `PASSWORD'.
Also, you can specify an optional argument to password
. See
this example:
password PASSWORD /boot/grub/menu-admin.lst
In this case, GRUB will load `/boot/grub/menu-admin.lst' as the configuration file when you enter the valid password.
Another thing which may be dangerous is that any user can choose any menu entry. Usually, this wouldn't be problematic, but you might want to permit only administrators to run some of your menu entries, such as an entry for booting an insecure OS like DOS.
The solution used by GRUB is the command lock
. This command
always fails until you enter a valid password, so you can use it, like
this:
title Boot DOS lock rootnoverify (hd0,1) makeactive chainload +1
You should insert lock
right after title
, because
any user can execute commands in an entry, until GRUB encounters
lock
.
Go to the first, previous, next, last section, table of contents.