Search code examples
linuxterminaletcpasswd

Open a terminal ends in an infinte loop


So I've been looking around on the web for some while now but this seems to be a tricky task.

I intended to change my default terminal on a Mint system from gnome to alacrity. I had alacrity installed before on the same system and it seemed to be work fine. I have not set up my root user or know the password for it so this makes this extra hard!

To change the default global behavior (e.g. pressing Crtl+Alt+T) modifying the /etc/passwd seemed reasonably to me. This is what the last line looks now: user:x:1000:1000:User,,,:/home/user:/usr/bin/alacritty

But: If I want to open a shell now almost a thousand instances do appear once the command is triggered and after a short while the whole system crashes. I don't know how to reset to the default setting since I need a shell and that tool is broken...

Here is what I tried so far

  • Try to use the shell env available at user log in: Login ends in an infinite loop
  • Try to open the /etc/passwd in graphical environment: Cannot modify the file (read only)

So here what I wish: Make this undone without reinstalling the operational system.

Thanks for your help and advice!


Solution

  • The field you are trying to change in /etc/passwd is used to set the per user shell (usually /bin/bash on Linux). The terminal emulator you want to use is can either be done with update-alternatives (system wise if you have root) on Debian based systems, or Window Manager specific configuration in general (GNOME, KDE, Xmonad etc).

    Login in as root, and change the /etc/passwd file back to using a valid shell for the user in question. Not sure how you don't have a root user. If you don't have the root password then follow the normal password recovery process. Boot from a live or rescue cd. If it doesn't mount the file system for you, mount it manually then edit /mnt/etc/password (where /mnt is where the original file system was mounted). Unmount and reboot your system normally.