Password errore: chsh: PAM: errore di autenticazione quando si tenta di installare Oh my zsh


11

Provo a installare Oh my zsh. Dopo l'installazione zsh ( sudo apt-get update && sudo apt-get install -y zsh)

Quindi installo

sudo apt-get install -y curl  

quindi installa git.

i problemi si verificano quando provo questo comando.

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

questo è il registro

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

C'è qualche idea?

Nota che ci ho provato

sudo vim /etc/pam.d/chsh  

quindi commentare l'autorizzazione richiesta pam_shells.so. Tuttavia, l'errore si verifica ancora.

Risposte:


16

Scarica ed esegui lo script separatamente:

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

E probabilmente dovresti annullare le modifiche a /etc/pam.d/chsh.

Spiegazione:

Piping del testo di uno script a bash

cat script.sh | bash

non equivale a fornire uno script come parametro a bash

bash script.sh

Effettuando il piping install.sha bash, bash prende il suo input standard ( stdin ) dal pipe piuttosto che dall'utente. In questo caso chshsembra anche ricevere il suo input da stdin , che è la riga successiva nello script dopo la chiamata a chsh. (Al momento sembra essere una riga vuota. Se fosse la tua password, non avresti alcun problema ;-))

Puoi testarlo con questo breve script, in cui si readaspetta una riga di input:

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

salvato come script.sh:

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

2
Ottima diagnosi Stavo riscontrando lo stesso problema su Debian e la tua correzione funziona per me. Ci sono un paio di problemi aperti nel progetto oh-my-zsh per questo ( github.com/robbyrussell/oh-my-zsh/issues/3516 ), quindi spero che anche questo venga risolto a monte. A proposito, nitpick minore: curlstampa il file su stdout invece di scrivere il file come wget; è necessario un curl -L ... > install.shreindirizzamento alla fine del comando.
Andrew Janke,

@AndrewJanke Grazie per il (non così) nitpick minore. Ora è stato risolto.
Adaephon,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.