Mot de passe d'erreur: chsh: PAM: échec d'authentification lors de la tentative d'installation Oh my zsh


11

J'essaie d'installer Oh my zsh. Après l'installation de zsh ( sudo apt-get update && sudo apt-get install -y zsh)

Ensuite j'installe

sudo apt-get install -y curl  

puis installez git.

le problème se produit lorsque j'essaie cette commande.

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

c'est le journal

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

Y a-t-il une idée?

Notez que j'ai essayé

sudo vim /etc/pam.d/chsh  

puis commentez l'auth requis pam_shells.so. Cependant, l'erreur se produit toujours.

Réponses:


16

Téléchargez et exécutez le script séparément:

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

Et vous devriez probablement annuler les modifications apportées à /etc/pam.d/chsh.

Explication:

Transférer le texte d'un script vers bash

cat script.sh | bash

n'est pas la même chose que de donner un script comme paramètre à bash

bash script.sh

En redirigeant install.shvers bash, bash tire son entrée standard ( stdin ) du tube plutôt que de l'utilisateur. Dans ce cas, chshsemble également recevoir son entrée de stdin , qui est la ligne suivante dans le script après l'appel à chsh. (Pour le moment, il semble que ce soit une ligne vide. Si c'était votre mot de passe, vous n'auriez aucun problème ;-))

Vous pouvez tester cela avec ce court script, dans lequel readattend une ligne d'entrée:

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

enregistré sous script.sh:

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

2
Excellent diagnostic. Je rencontrais le même problème sur Debian, et votre correctif fonctionne pour moi. Il y a quelques problèmes ouverts sur le projet oh-my-zsh pour cela ( github.com/robbyrussell/oh-my-zsh/issues/3516 ) donc j'espère que cela sera corrigé en amont aussi. BTW, nitpick mineur: curlimprime le fichier sur stdout au lieu d'écrire le fichier comme wget; vous avez besoin d'une curl -L ... > install.shredirection à la fin de la commande.
Andrew Janke

@AndrewJanke Merci pour le (pas si) mineur nitpick. C'est corrigé maintenant.
Adaephon
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.