On Wed, Apr 25, 2012 at 12:20:52PM +0800, XeCycle wrote:
"Dmitry S. Kravtsov" <idkravitz@gmail.com> writes:
Hi,
Today I messed around with zsh and login shells and found a strange thing - when I try to change my own login shell - chsh forbids me to do this:
$ chsh -s /bin/bash You may not change the shell for 'kravitz'. $ whoami kravitz
So it states, that I can't change login shell for current user, but lets look at manpage:
DESCRIPTION The chsh command changes the user login shell. This determines the name of the users initial login command. A normal user may only change the login shell for her own account; the superuser may change the login shell for any account.
Have you messed with PAM? Sounds like you blocked yourself in /etc/pam.d/chsh.
Nope, as I already replied here - problem is now resolved. The problem was - I accidently set by root the login shell of my user to "zsh" instead of "/bin/zsh". And according to very unclear note in manpage of chsh - both current and new login shells should be described in /etc/shells. I set a correct login shell for my user by root and now the problem is resolved - chsh works correctly