[HELP] Loginshell gelöscht

Deamon

Well-Known Member
Hallo,

okay in meinem Wahn (weil nix funktionierte) hab ich alle installierten Pakages deinstalliert , leider hatte ich vorher die loginshell verändert, da diese nun aber nicht mehr existent ist, kann ich mich nicht mehr einloggen.

Er fragt zwar login und pw ab, aber nach Eingabe kommt die Fehlermeldung /bla/bla/loginshell not found und er wirft mich wieder zurück zum loginprompt.

Jemand eine Idee wie ich mich trotzdem einloggen kann?
 
Deamon schrieb:
Hallo,

okay in meinem Wahn (weil nix funktionierte) hab ich alle installierten Pakages deinstalliert , leider hatte ich vorher die loginshell verändert, da diese nun aber nicht mehr existent ist, kann ich mich nicht mehr einloggen.

Er fragt zwar login und pw ab, aber nach Eingabe kommt die Fehlermeldung /bla/bla/loginshell not found und er wirft mich wieder zurück zum loginprompt.

Jemand eine Idee wie ich mich trotzdem einloggen kann?

Wenn das nur eine Benutzershell ist, dann kannst du als root mit "chsh -s shell benutzer" eine neue Shell festlegen, wobei du für shell entweder einen vollständigen Pfad oder eine aus /etc/shells wählen kannst, z.B. "tcsh" anstatt "/bin/tcsh".

Wenn das aber die Root-Shell ist, dann müsstest du folgendes tun:

Boote im Single-User-Modus (also die 4 im Beastie-Menü). Nachdem er dann den Kernel geladen hat, fragt er nach einer Shell. Benutze die Vorgabe /bin/sh. Dann lädt du /usr beispielsweise mit "mount /usr" und auch / mit "mount /" weil es schreibgeschützt ist. Nun kannst du ein "chsh -s csh" absetzen, um die ursprüngliche Shell von root wiederherzustellen und neustarten.

Gruß Björn
 
Ach noch etwas: die Shell von Root muss man eigentlich nicht unbedingt ändern; dann kann so etwas auch nicht so schnell passieren. Einerseits arbeitet man ja eh kaum als root weswegen man da unbedingt seine Lieblingsshell verwenden muss und andererseits ist auch tcsh eine hervorragend programmierbare Shell mit nur wenigen Makeln.

Als kleinen Anreiz und Demonstration, dass man auch tolle Dinge damit machen kann:

complete pkg_delete 'p@1@`ls /var/db/pkg`@'

und

complete login 'p/1/u/'

und dann mal "pkg_del[Tab][Strg+D]" bzw "login [Strg+D]" eingeben. ;-) Ok, kann man mit anderen Shells auch, aber wie gesagt, das würde dann wieder ein zusätzliches Paket sein, was zu deinem Missgeschick führen könnte.
 
Zurück
Oben