Сегодня я пытался переключиться на другую оболочку.
Сначала я попробовал рыбу и использовал chsh -s fish
изменить рыбу для установки по умолчанию. Через какое-то время я нашел, что это не может использовать ~/.bashrc
(&& должен быть заменен и).
Поскольку я предпочитаю многократному использованию ~/.bashrc
, Я нашел zsh
который кажется более легким и следовал этой документации для переключения на zsh
.
В то время как я работал sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
, внезапно это попросило, чтобы я вошел Password:
. Я ввел пароль root, но добрался PAM: Authentication failure
.
Затем я попробовал chsh -s bash
и chsh -s zsh
, это всегда просило у меня пароль и бросало PAM: Authentication failure
(не системный пароль). Я не могу понять это.
Благодаря этот вопрос на Отказе сервера , я работал вокруг этого:
Изменение /etc/pam.d/chsh:
от:
auth required pam_shells.so
к
auth sufficient pam_shells.so
Затем это больше не просит пароль. Но я думаю, что это лучше восстанавливает chsh настройки после переключения оболочки.
Использование which zsh
для нахождения Вашего zsh
местоположение.
$ which zsh
/usr/bin/zsh
Добавляют /usr/bin/zsh
к /etc/shells
Регистрация /etc/passwd
, что Ваша конфигурация /usr/bin/zsh
Выполнение chsh -s /usr/bin/zsh
Альтернативный обходной путь –
Мой файл /etc/pam.d/chsh
имеет этот раздел:
# This allows root to change user shell without being
# prompted for a password
auth sufficient pam_rootok.so
Как следует из комментария, он позволяет изменить root оболочке без необходимости вводить пароль. Таким образом, я смог изменить свою оболочку (на zsh), запустив chsh
от имени пользователя root и указав свою учетную запись, например:
sudo chsh $USER -s $(which zsh)