Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I'm new to Linux and using Debian 7. I was using bash, but tried out zsh by using chsh. Initially probably entered a bad shell name but eventually switched to zsh successfully.

Now I switched back to bash but can't access root

When I hit su and the password it returns "Cannot execute zsh: No such file or diretory", while apparently I'm using bash.

Additionally, when I changed back to zsh it still said the same, "can't execute zsh ..."

Can someone help please?

Thanks!

violeaf

share|improve this question
    
Have you tried creating a new shell? Close your terminal program and reopen it. You could alternatively just type 'bash'. –  spuder Aug 22 '13 at 1:54
    
If you mean using another shell other than bash or zsh then I haven't, but will give it a go and let you know. Thanks! By the way I'm using the GNOME terminal. –  violeaf Aug 22 '13 at 6:49
    
Did you chsh to zsh for both your non-root account as well as the root account and later uninstalled zsh? It sounds like your root account still uses zsh and that you only switched your non-root account back to bash. –  Adrian Frühwirth Aug 22 '13 at 6:52
    
You might have chsh'd your root shell to just zsh (without path) instead of /bin/zsh (but chsh should have warned you about that) in which case it cannot find the shell. –  Adrian Frühwirth Aug 22 '13 at 6:55
    
Adrian I think this may well be the case. How can I now chsh the root shell back? Tried Tommi's suggestion but didn't work. Any idea? –  violeaf Aug 22 '13 at 19:13

3 Answers 3

up vote 0 down vote accepted

This is why you want to always stay logged in in a second terminal while you muck with your login settings.

As for recovery after locking yourself out: Since you have physical access just boot from a live cd, then mount the system partition on your disk, and edit /etc/passwd manually. Or reboot, go to the grub prompt, and add init=/bin/sh to your kernel command line.

share|improve this answer
    
Thanks @vbraun, before everything I had to navigate to /bin before I was able to get root access under zch. Then instead of using a live cd I sudo'd gedit the passwd and changed the shell value to /bin/bash wherever it appears, now it seems to work. Thanks again for all your help –  violeaf Aug 22 '13 at 23:59

type $ sudo bash it ask for password enter password then type

cd /etc (press enter)

type # nano passwd press enter thn change ur passwd file (replace zsh wit sh)

share|improve this answer

su -s /bin/sh -c chsh root

And this time make sure you provide full path.

share|improve this answer
    
Tommi I typed this in and my password, but got 'Cannot execute zsh' –  violeaf Aug 22 '13 at 19:09
1  
simply doesn't work, this is stupid. –  martialdidit Jan 23 '14 at 23:32
    
Care to elaborate why you think it's stupid? If he had /bin/zsh listed in /etc/shells (which I'm assuming is the case here), then the -s will work with su. I even made sure it works by first switching my root (who uses /bin/zsh by default) to use /bin/bash. Then I moved /bin/bash to /bin/bash.disabled. Failed to login as root as described here. Ran the exact above command I posted and was able to change shell back to my default inspite of what root had for him in /etc/passwd. –  Tommi Kyntola Feb 5 '14 at 9:45

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.