it-swarm.com.de

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

Ich versuche Oh mein zsh zu installieren. Nach der Installation von 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

das 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 es versucht habe

Sudo vim /etc/pam.d/chsh  

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

11
UmAnusorn

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 /etc/pam.d/chsh rückgängig machen.

Erklärung:

Text eines Skripts an bash weiterleiten

cat script.sh | bash

ist nicht dasselbe, als würde man bash ein Skript als Parameter geben

bash script.sh

Indem Sie install.sh an bash leiten, erhält bash die Standardeingabe ( stdin ) nicht vom Benutzer, sondern von der Pipe. In diesem Fall scheint chsh auch seine Eingabe von stdin zu erhalten. Dies ist die nächste Zeile im Skript nach dem Aufruf von 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 read eine Eingabezeile erwartet:

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: ' <
16
Adaephon