On Wed, Apr 25, 2012 at 12:20:52PM +0800, XeCycle wrote: > "Dmitry S. Kravtsov" <idkravitz@xxxxxxxxx> 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