Пароль помилки: chsh: PAM: Помилка автентифікації під час спроби встановити Oh my zsh


11

Я намагаюсь встановити Ой мій шш. Після встановлення zsh ( sudo apt-get update && sudo apt-get install -y zsh)

Потім я встановлюю

sudo apt-get install -y curl  

потім встановіть git.

проблеми виникають, коли я спробую цю команду.

curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | bash

це журнал

sudo curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   146  100   146    0     0     91      0  0:00:01  0:00:01 --:--:--    91
100  1779  100  1779    0     0    525      0  0:00:03  0:00:03 --:--:--  1416
\033[0;34mCloning Oh My Zsh...\033[0m
Cloning into '/home/icom3/.oh-my-zsh'...
remote: Reusing existing pack: 10101, done.
remote: Total 10101 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (10101/10101), 1.92 MiB | 172.00 KiB/s, done.
Resolving deltas: 100% (5337/5337), done.
Checking connectivity... done.
\033[0;34mLooking for an existing zsh config...\033[0m
\033[0;33mFound ~/.zshrc.\033[0m \033[0;32mBacking up to ~/.zshrc.pre-oh-my-zsh\033[0m
\033[0;34mUsing the Oh My Zsh template file and adding it to ~/.zshrc\033[0m
\033[0;34mCopying your current PATH and adding it to the end of ~/.zshrc for you.\033[0m
\033[0;34mTime to change your default shell to zsh!\033[0m
Password: chsh: PAM: Authentication failure

Чи є ідея?

Зауважте, що я спробував

sudo vim /etc/pam.d/chsh  

тоді коментувати потрібний автор пам’яті пам’яті.so. Однак помилка все-таки трапляється.

Відповіді:


16

Завантажте та запустіть сценарій окремо:

curl -OL https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh
bash install.sh

І, ймовірно, слід скасувати зміни /etc/pam.d/chsh.

Пояснення:

Передача тексту сценарію до bash

cat script.sh | bash

не є тим самим, що давати сценарій як параметр bash

bash script.sh

По трубопроводу install.shдо bashbash бере стандартний вхід ( stdin ) з труби, а не від користувача. У цьому випадку chshтакож здається, що він отримує свій вхід від stdin , який є наступним рядком у скрипті після виклику до chsh. (На даний момент це здається порожнім рядком. Якби це ваш пароль, у вас не виникло б жодної проблеми ;-))

Ви можете перевірити це за допомогою цього короткого сценарію, в якому readочікується один рядок введення:

read -p 'input: ' INPUT
echo -n 'You wrote this: '
echo "> $INPUT <"

збережено як script.sh:

$ bash script.sh
input: foobar
You wrote this: > foobar <
$ cat script.sh | bash
> echo -n 'You wrote this: ' <

2
Чудовий діагноз. Я натрапив на цю ж проблему на Debian, і ваше виправлення працює на мене. Для цього проекту oh-my-zsh є кілька відкритих питань ( github.com/robbyrussell/oh-my-zsh/isissue/3516 ), тому, сподіваємось, це також буде виправлено. BTW, другорядний nitpick: curlдрукує файл у stdout замість того, щоб записати файл, як wget; вам потрібно curl -L ... > install.shперенаправлення в кінці команди.
Ендрю Янке

@AndrewJanke Дякую за (не дуже) другорядну нитку. Це зараз виправлено.
Adaephon
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.