I needed to run a
sudo command recently on my Debian Linux box.
Unfortunately, I had forgotten the password on the main account since I was
using an ssh key for all my needs. I also locked root and couldn't access via
Since I have physical access, I thought this would pretty easy. Everyone always says that with physical access, it's trivial to get root access.
At first, I tried simply booting into recovery mode. Sadly, I was greeted with a message that my root account was locked and the defaults didn't work.
So, I followed the instructions
here. For my own reference, it basically consisted of modifying the advanced boot
options on boot. The specific modification was to change the line that looks
linux /vmlinux... root=... other stuff to something like
linux /vmlinux... root=... init=/bin/bash and then starting the
boot process. In theory after that occurs, I can simply remount using
mount -o remount,rw / followed by resetting the password via
Unfortunately for me, that didn't work either. The error message that greeted me was:
bash: cannot set terminal process group (-1): Inappropriate ioctl for device
I found someone who encountered a similar problem on askubuntu, but sadly there was no solution. Like the person on askubuntu, I had that message and pressing keys on the keyboard had no response. I had to physically press the reboot button to get back to GRUB.
However, I noticed one thing. The logging indicated that my USB keyboard was
being detected. But the timestamp was after the
message. Since I had no better ideas, I swapped the keyboard's USB port to a
different one. Miraculously, that USB port was loaded before the
ioctl error. Because of that, even though I still got the
ioctl error message, pressing keys on my keyboard worked! With
that, I was able to do the
passwd commands and
reset my password. Interesting that the specific port chosen actually
Any error corrections or comments can be made by sending me a pull request.