Contraseña de error: chsh: PAM: error de autenticación al intentar instalar Oh my zsh

11

Intento instalar Oh my zsh. Después de instalar zsh ( sudo apt-get update && sudo apt-get install -y zsh)

Luego instalo

sudo apt-get install -y curl  

luego instala git.

El problema ocurre cuando intento este comando.

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

este es el 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

¿Hay alguna idea?

Tenga en cuenta que he intentado

sudo vim /etc/pam.d/chsh  

luego, la autenticación de comentario requiere pam_shells.so. Sin embargo, el error aún ocurre.

UmAnusorn
fuente

Respuestas:

16

Descargue y ejecute el script por separado:

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

Y probablemente debería deshacer los cambios a /etc/pam.d/chsh.

Explicación:

Canalizar el texto de un script a bash

cat script.sh | bash

no es lo mismo que dar un script como parámetro para bash

bash script.sh

Por medio de tuberías install.sha bash, golpe toma su entrada estándar ( stdin ) de la tubería en lugar de al usuario. En este caso, chshtambién parece estar recibiendo su entrada de stdin , que es la siguiente línea en el script después de la llamada a chsh. (Por el momento parece ser una línea vacía. Si fuera su contraseña, no tendría ningún problema ;-))

Puede probar esto con este breve script, en el que se readespera una línea de entrada:

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

guardado como script.sh:

$ bash script.sh
input: foobar
You wrote this: > foobar <
$ cat script.sh | bash
> echo -n 'You wrote this: ' <
Adaephon
fuente
2
Gran diagnostico. Me encontraba con el mismo problema en Debian, y su solución funciona para mí. Hay un par de problemas abiertos en el proyecto oh-my-zsh para esto ( github.com/robbyrussell/oh-my-zsh/issues/3516 ), así que espero que esto también se solucione en sentido ascendente. Por cierto, pequeño detalle: curlimprime el archivo en stdout en lugar de escribir el archivo como wget; necesita una curl -L ... > install.shredirección al final del comando.
Andrew Janke
@ AndrewJanke Gracias por el (no tan) pequeño detalle. Ya está arreglado.
Adaephon