Fehler Passwort: chsh: PAM: Authentifizierungsfehler beim Versuch, Oh my zsh zu installieren

11

Ich versuche Oh mein zsh zu installieren. Nach der Installation zsh ( sudo apt-get update && sudo apt-get install -y zsh)

Dann installiere ich

sudo apt-get install -y curl  

dann installiere git.

Die Probleme treten auf, wenn ich diesen Befehl versuche.

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

Dies ist das Protokoll

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

Gibt es eine Idee?

Beachten Sie, dass ich versucht habe

sudo vim /etc/pam.d/chsh  

dann Kommentar auth erforderlich pam_shells.so. Der Fehler tritt jedoch weiterhin auf.

UmAnusorn
quelle

Antworten:

16

Laden Sie das Skript herunter und führen Sie es separat aus:

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

Und Sie sollten wahrscheinlich die Änderungen an rückgängig machen /etc/pam.d/chsh.

Erläuterung:

Weiterleiten des Textes eines Skripts an bash

cat script.sh | bash

ist nicht dasselbe wie ein Skript als Parameter zu geben bash

bash script.sh

Durch das Weiterleiten install.shan bashleitet bash seine Standardeingabe ( stdin ) eher vom Rohr als vom Benutzer. In diesem Fall chshscheint es auch seine Eingabe von stdin zu erhalten , was die nächste Zeile im Skript nach dem Aufruf von ist chsh. (Im Moment scheint es eine leere Zeile zu sein. Wenn es dein Passwort wäre, hättest du kein Problem ;-))

Sie können dies mit diesem kurzen Skript testen, in dem readeine Eingabezeile erwartet wird:

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

gespeichert als script.sh:

$ bash script.sh
input: foobar
You wrote this: > foobar <
$ cat script.sh | bash
> echo -n 'You wrote this: ' <
Adaephon
quelle
2
Gute Diagnose. Ich habe auf Debian das gleiche Problem festgestellt, und Ihr Fix funktioniert für mich. Es gibt ein paar offene Probleme mit dem oh-my-zsh-Projekt ( github.com/robbyrussell/oh-my-zsh/issues/3516 ), so dass dies hoffentlich auch stromaufwärts behoben wird. Übrigens, kleiner Nitpick: Druckt curldie Datei auf stdout, anstatt sie wie folgt zu schreiben wget. Sie benötigen eine curl -L ... > install.shUmleitung am Ende des Befehls.
Andrew Janke
@ AndrewJanke Danke für den (nicht so) kleinen Nitpick. Es ist jetzt behoben.
Adaephon