Я хочу сменить оболочку с bash на zsh.
Я попытался запустить следующее во время входа в систему как пользователь zol:
$ chsh -s /bin/zsh
$ sudo chsh -s /bin/zsh zol
$ su -c 'chsh -s /bin/zsh zol'
# The above all results with:
$ password:
$ chsh: Shell not changed.
# zsh exists in /etc/shells..
chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/bin/zsh
Что может быть не так? Как я могу это исправить?
chsh
, что означает , что вы должны будете снова войти в систему .Ответы:
Изменения учетной записи пользователя не будут сохранены, если вы открыли / etc / passwd (vim / etc / passwd) при попытке изменить информацию.
Альтернатива: попробуйте с usermod (как zol):
или
Если это тоже не работает, отредактируйте
/etc/passwd
вручную.источник
vipw
вместо того, чтобыvim
установить соответствующие блокировки файлов.Когда запускать "chsh -l", если вы видите:
Тогда используйте:
Предупреждение: Команды были запущены в Fedora 25, В Ubuntun опция "-l" из отсутствует.
источник
-l
неверный вариант для меня. Я на Ubuntu 16.04chsh -s
работал отлично. Благодарю.Если вы видите
chsh: Shell not changed.
, это может означать, что оболочка уже была изменена.Проверьте, какая оболочка в списке:
Если все правильно, выйдите из системы и снова войдите в систему, чтобы изменения вступили в силу.
источник
Просто столкнулся с этим. Независимо от того, что я делал, вход и выход не изменили мою оболочку, но она была указана в / etc / shells и / etc / passwd.
наконец меня осенило: может быть, я вошел в систему с другого сеанса?
Так я и сделал
и это подтвердило, что у меня действительно были другие открытые сессии с других машин:
Я тогда сделал:
Я был немедленно вышел из системы и после входа в систему: Вуаля! Оболочка была изменена
источник