я хочу изменить оболочку по умолчанию
и запустить 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
файл вручную, и все в порядке.
глупая ошибка и спасибо за ваши ответы
Ответы:
Проверьте файл / etc / shells и добавьте / bin / zsh в файл, если эта строка не существует.
источник
/etc/passwd
файл, правильно ли я ввел формат имени оболочки. Thx/etc/passwd
. Спасибо @txworking!/etc/passwd
для корневой учетной записи ...Проверьте свой
/etc/passwd
. В моем случае я ранее указывал недопустимую оболочку,chsh
и это было причиной проблемы.Я изменил его
zsh
как оболочку,/bin/zsh
и это заставило проблему уйти.источник
Похоже, ваш путь не так. Чтобы проверить это:
Если результат - / usr / bin / zch, это должно сработать:
* редактировать для опечатки.
источник
Я столкнулся с той же проблемой. всякий раз, когда я набрал в chsh это использовать, чтобы подсказать
Но я решил это, сделав некоторые изменения в
/etc/passwd
файлепросто откройте свой корневой терминал и измените
/etc/passwd
файл, который вы можете использовать для этой работы, используя редактор pico, nano или vi.затем найдите учетную запись пользователя. и измените оболочки на желаемую, убедитесь, что в ваших дистрибутивах Linux установлена необходимая оболочка, чтобы новый пользователь мог увидеть, какие оболочки присутствуют в их linux, просто введите
он перечисляет их там. Если вообще у вас установлена оболочка, и вы не можете ее увидеть,
/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 ..
источник
Вы должны запустить свой код как sudo:
У меня тоже была такая же проблема, и это сработало!
источник