I wanted to try some new things on my computer today, and it required a reboot. Since I run Linux, reboots happen quite rarely, typically about once a year. When my machine came back up however, I found my normal user account couldn’t log in. I could log in as root on the console, and all users if I ssh’d in, but ONLY as root on the console.
When I tried to log in as me, I could see that an error message was flickering up there, but it was going away too fast for me to read. I searched with Google for a LONG time, sent a bunch of emails to my local Linux Users Group, all to no avail.
Someone suggested logging into one console as root and watching the console error messages as I tried to log into another console as my regular user. That didn’t work, BUT, for some reason it slowed the machine down enough that I was able to read a single word of the error message. I did it again, and got the second word. I continued with that until suddenly, it didn’t go away! There was my error message:
** (process:6340): CRITICAL **: unknown class "dri" at line 78 in /etc/security/console.perms
and below it said
INIT: Id "2" respawning too fast: disabled for 5 minutes
So what happened is that my frenzied login attempts caused the computer to think it was being attacked, and disable that account for 5 minutes. That also left my real error message up on the screen.
Once I could see it, it was really quite helpful. I opened /etc/security/console.perms and went to line 78, and took out the line that said
<xconsole> 0600 <dri> 0600 root
I then waited for the login embargo to time out, and logged in flawlessly.
So why did this happen? Well, I have an nVidia GeForce FX 5600 video card with tons of RAM. I use Fedora Core 3, which comes with a driver for it, but the official driver is MUCH nicer. I installed the official driver, but again, because I use Linux, I didn’t actually have to reboot, or most importantly, even re-log in. I’m guessing the new driver somehow messed up the dri module, but since I was already logged in, it didn’t freak out. It was only after I logged out and back in that I had the problem.
So to sum up, I’m using Fedora Core 3, and I could only log into the console as root. I fixed it by looking in /etc/security/console.perms. Google, take note.