Originally Posted by John-in-France
I'm more used to Fedora but I suspect Ubuntu uses much the same approach. Normally the automatic additions to Grub are limited to the new version and the version it is replacing. Older stanzas are automatically removed.
As to editing the file (\boot\grub\menu.lst or \boot\grub\grub.conf (depending on distro)), "root" can always do that but here, the caveat is "handle with care". If you really try you can end up with an un-bootable system and whilst recreating menu.lst or in a really bad case re-installing grub are both fairly straightforward, neither is really something you want to have to do on a weekly basis.
The synxtax of menu.lst/grub.conf is really simple and straightforward.
I can hardly imagine how anyone with a minimal common sense could render unbootable a system by just removing one old kernel from the list (unless the only remaining kernel is a self-compiled and untested kernel, of course).
Besides that, if you screw up your config, reinstalling grub to the mbr is not going to help at all. And, anyway, as long as grub is on the mbr and you have a kernel on your disk, the system is bootable, because grub, unlike lilo, permits manual operation at boot time, so you can edit your kernel lines and boot any kernel that you have on your hard drive, as long as it's into one of the filesystems that grub can read from. You even have a shell-like feeling and tab autocompletion, even an elephant could find a kernel to boot from that way.
kernel /foo-2.5.22 root=/dev/hda1
kernel /foo-2.5.23 root=/dev/hda1
kernel /foo-2.5.24 root=/dev/hda1
kernel /foo-2.5.25 root=/dev/hda1
I think that's evident enough what to do if we want to remove 2.5.22 from the boot menu. The sections might be a bit complexer, but that's completely besides the point.