Erro Password: chsh: PAM: Falha de autenticação ao tentar instalar o Oh my zsh

11

Eu tento instalar o Oh my zsh. Depois de instalar o zsh ( sudo apt-get update && sudo apt-get install -y zsh )

Então eu instalo

sudo apt-get install -y curl  

depois instale o git.

os problemas ocorrem quando eu tento este comando.

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

este é o log

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
3[0;34mCloning Oh My Zsh...3[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.
3[0;34mLooking for an existing zsh config...3[0m
3[0;33mFound ~/.zshrc.3[0m 3[0;32mBacking up to ~/.zshrc.pre-oh-my-zsh3[0m
3[0;34mUsing the Oh My Zsh template file and adding it to ~/.zshrc3[0m
3[0;34mCopying your current PATH and adding it to the end of ~/.zshrc for you.3[0m
3[0;34mTime to change your default shell to zsh!3[0m
Password: chsh: PAM: Authentication failure

Existe alguma ideia?

Note que tentei

sudo vim /etc/pam.d/chsh  

, em seguida, comente o auth required pam_shells.so. No entanto, o erro ainda ocorre.

    
por UmAnusorn 16.06.2014 / 04:28

1 resposta

15

Faça o download e execute o script separadamente:

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

E você provavelmente deve desfazer as alterações em /etc/pam.d/chsh .

Explicação:

Piping o texto de um script para bash

cat script.sh | bash

não é o mesmo que dar um script como parâmetro para bash

bash script.sh

Por canalizar install.sh para bash , o bash recebe sua entrada padrão ( stdin ) do canal em vez do usuário. Nesse caso, chsh também parece estar recebendo sua entrada de stdin , que é a próxima linha no script após a chamada para chsh . (No momento parece ser uma linha vazia. Se fosse sua senha, você não teria nenhum problema ;-))

Você pode testar isso com este script curto, no qual read espera uma linha de entrada:

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

salvo como script.sh :

$ bash script.sh
input: foobar
You wrote this: > foobar <
$ cat script.sh | bash
> echo -n 'You wrote this: ' <
    
por Adaephon 16.06.2014 / 09:07