All of the access, none of the passwords
If you have console access and don't mind rebooting,
traditional wisdom beckons you to boot up in single user mode.
Naturally, after hitting Control-Alt-Delete, you simply wait for it
to POST and then pass the parameter
single to the
booting kernel. For example, from the LILO prompt:
LILO: linux single
On many systems, this will happily present you with a root shell. But on some systems (notably RedHat), you'll run into the dreaded emergency prompt:
Give root password for maintenance (or type Control-D for normal startup)
If you knew the root password, you wouldn't be here! If you're lucky, the init script will actually let you hit ^C at this stage and will drop you to a root prompt. But most init processes are "smarter" than that, and trap ^C. What to do? Of course, you could always boot from a rescue disk and reset the password, but suppose you don't have one handy (or that the machine doesn't have a CD-ROM drive).
All is not lost! Rather than risk running into the above mess, let's modify the system with extreme prejudice, right from the start. Again, from the LILO prompt:
LILO: linux init=/bin/bash
What does this do? Rather than start /sbin/init and proceed with the usual /etc/rc.d/* procedure, we're telling the kernel to simply give us a shell. No passwords, no filesystem checks (and for that matter, not much of a starting environment!) but a very quick, shiny new root prompt.
Unfortunately, that's not quite enough to be able to repair your system. The root filesystem will be mounted read-only (since it never got a chance to be checked and remounted read/write). Also, networking will be down, and none of the usual system daemons will be running. You don't want to do anything more complicated than resetting a password (or tweaking a file or two) at a prompt like this. Above all: don't hit ^D or type Exit! Your little shell (plus the kernel) constitutes the entire running Linux system at the moment. So, how can you manipulate the filesystem in this situation, if it is mounted read-only? Try this:
# mount -o remount,rw /
That will force the root filesystem to be remounted read-write. You
can now type
passwd to change the root password
(and if the original admin lost the password, consider the
ramifications of giving them access to the new one. If you were the
original admin, consider writing it in invisible ink on a post-it
note and sticking it to your screen, or stitching it into your
underwear, or maybe even taking up another hobby).
Once the password is reset, DO NOT REBOOT. Since there is no init running, there is no process in place for safely taking the system down. The quickest way to shutdown safely is to remount root again:
# mount -o remount,ro /
With the root partition readonly, you can confidently hit the Reset button, bring it up in single-user mode, and begin your actual work.