14.04 Не аутентификация на команде chsh

Я пытаюсь изменить свою оболочку по умолчанию на zsh. Мне поместили запись правильно в/etc/shells файле.

Каждая попытка, которую я предпринял с этой командой, закончилась тем же сообщением об ошибке:

chsh -s $(which zsh)
Password: ### after entering the correct password
chsh: PAM: Authentication failure

sudo chsh -s $(which zsh) ## yields the same result

Я использовал sudo для других команд, чтобы быть уверенным, что это не была ошибка пароля, и любая команда работала, но ничто не работает с "chsh".

Полностью озадаченный.

Дополнительная информация:

Я добавил строку на предложенный код Oli в/etc/shells файл.

echo $SHELL 
/bin/bash

sudo chsh -s /usr/local/bin/zsh
Password:
chsh: PAM: Authentication failure

chsh -s /usr/local/bin/zsh
You may not change the shell for 'username'

Все еще не может изменить оболочку.

4
задан 8 June 2014 в 18:04

4 ответа

PAM имеет довольно трудное, держатся chsh. Поскольку Вы видите форму /etc/pam.d/chsh, это делает проверку:

# This will not allow a user to change their shell unless
# their current one is listed in /etc/shells. This keeps
# accounts with special shells from changing them.
auth       required   pam_shells.so

Существует также страница справочника для этой проверки (man pam_shells) который говорит нам следующее:

pam_shells is a PAM module that only allows access to the  system if the users shell is 
listed in /etc/shells.

It also checks if /etc/shells is a plain file and not world writable.

Таким образом звуками его, у Вас нет a /usr/bin/zsh строка в /etc/shells. Давайте добавим тот:

echo $(which zsh) | sudo tee -a /etc/shells
chsh -s $(which zsh)

Или это или Ваша текущая оболочка не перечислены на там. Если Вы застреваете на чем-то как rbash, это не могло бы быть перечисленным примером, и это могло бы мешать Вам изменить оболочку.

Я протестировал (удалил zsh строка от /etc/shells, загруженный zsh и попробованный к chsh) но видел совсем другое сообщение об ошибке:

You may not change the shell for 'oli'

Таким образом, это - вероятно, не это.

6
ответ дан 17 November 2019 в 14:16

ситуация на моей домашней машине была /etc/shells, не имел только многократных въездов /usr/bin/zsh. Но и никакая запись /bin/zsh.

тест which zsh | sudo tee -a /etc/shells возвратил бы хороший результат.

редактирование краткого руководства по А так /bin/zsh было связанной записью единственного zsh, был достаточно ничего для исправления.

После этого я сделал удаление /home/usr/.oh-my-zsh каталог (я сохранил мой .zshrc файл), и сделал полное, переустанавливают, и это удалило chsh проблему. Возможно, комбинация некоторых плохо oh-my-zsh файл и плохой файл оболочки создала ошибку?

0
ответ дан 17 November 2019 в 14:16

В моем случае проблемой был мой пользователь, был создан без оболочки (никакая оболочка в passwd файле для моего пользователя). Я должен был изменить оболочку как корень.

0
ответ дан 1 December 2019 в 09:24

Чтобы дополнить прекрасное объяснение Оли простым исправлением ошибки Вы не можете изменять оболочку для ошибки «имя пользователя» , любезно предоставлено этот ответ :

# Set the shell for the current user to '/bin/bash' in this example,
# which works even if the current shell is (unexpectedly) not listed in '/etc/shells'.
sudo usermod --shell /bin/bash $USER
0
ответ дан 20 March 2020 в 21:43

Другие вопросы по тегам:

Похожие вопросы: