chsh: аутентификация PAM не удалась

13

я хочу изменить оболочку по умолчанию

и запустить chsh -s /bin/zshот имени пользователя root,

но сообщение об ошибке появилось: chsh: PAM authentication failed.

я нахожу эту тему http://ubuntuforums.org/showthread.php?t=1702833

но ответ не решил мою проблему

любая помощь будет оценена


это содержимое /etc/pam.d/chsh

#
# The PAM configuration file for the Shadow `chsh' service
#

# 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

# This allows root to change user shell without being
# prompted for a password
auth            sufficient      pam_rootok.so

# The standard Unix authentication modules, used with
# NIS (man nsswitch) as well as normal /etc/passwd and
# /etc/shadow entries.
@include common-auth
@include common-account
@include common-session

это содержимое / etc / shells

# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/tmux
/usr/bin/screen
/bin/zsh
/usr/bin/zsh

я нахожу, что я использовал для запуска chsh -s zsh это изменит первую строку /etc/passwdкак

root:x:0:0:root:/root:zsh

и chshпопросит пароль, что бы вы ни пытались

Я просто редактирую /etc/passwdфайл вручную, и все в порядке.

глупая ошибка и спасибо за ваши ответы

txworking
источник
Можете ли вы предоставить свой /etc/pam.d/chsh? (Кстати, обычно считается хорошей идеей, чтобы корневая оболочка входа в систему была минимальной / стабильной - есть ли причина, по которой вы хотите использовать zsh в качестве оболочки по умолчанию, а не запускать ее после входа в систему?)
symcbean
я просто хочу автоматически войти в оболочку zsh, когда я только что вошел в систему, возможно, это не хорошо.
txworking

Ответы:

5

Проверьте файл / etc / shells и добавьте / bin / zsh в файл, если эта строка не существует.

Юрий Назаров
источник
3
этот ответ вдохновил меня проверить /etc/passwdфайл, правильно ли я ввел формат имени оболочки. Thx
txworking
Для меня, используя бродячую ВМ, мне нужно было поменять /etc/passwd. Спасибо @txworking!
wulftone
Для меня проблема вызываются ошибочной конфигурацией для внутренней оболочки /etc/passwdдля корневой учетной записи ...
Конус
3

Проверьте свой /etc/passwd. В моем случае я ранее указывал недопустимую оболочку, chshи это было причиной проблемы.

Я изменил его zshкак оболочку, /bin/zshи это заставило проблему уйти.

funroll
источник
1

Похоже, ваш путь не так. Чтобы проверить это:

[nick ~]$ which zsh
/usr/bin/zsh

Если результат - / usr / bin / zch, это должно сработать:

[nick ~]$ chsh -s /usr/bin/zsh

* редактировать для опечатки.

nickdew
источник
1

Я столкнулся с той же проблемой. всякий раз, когда я набрал в chsh это использовать, чтобы подсказать

chsh: PAM authentication failed

Но я решил это, сделав некоторые изменения в /etc/passwdфайле

Users of kali-linux

просто откройте свой корневой терминал и измените /etc/passwdфайл, который вы можете использовать для этой работы, используя редактор pico, nano или vi.

vi /etc/passwd

затем найдите учетную запись пользователя. и измените оболочки на желаемую, убедитесь, что в ваших дистрибутивах Linux установлена ​​необходимая оболочка, чтобы новый пользователь мог увидеть, какие оболочки присутствуют в их linux, просто введите

cat /etc/shells

он перечисляет их там. Если вообще у вас установлена ​​оболочка, и вы не можете ее увидеть, /etc/shellвам нужно создать ссылку и указать путь оболочки, скажем, для предположения, /bin/kshв /etc/shellsфайле вручную ...

Например, вы находитесь в Bash, и вы хотите изменить его на Ksh

просто зайдите в аккаунт в /etc/passwdфайле и в последнем поле отредактируйте

/bin/bashк /bin/kshили /bin/ksh93(как у вас cat /etc/shells)

просто выйдите из системы и войдите в систему, и вы готовы ...

для пользователей других дистрибутивов (скажем) Ubuntu

печатать

sudo -H gnome-terminal (получить корневой терминал)

и процесс такой же, как и выше, так как у вас также есть корневой терминал, такой как пользователь kali-linux ..

Дхавал С
источник
1

Вы должны запустить свой код как sudo:

sudo chsh -s /bin/zsh

У меня тоже была такая же проблема, и это сработало!

Yilmazerhakan
источник