Error Password: chsh: PAM: Authentication failure when try to install Oh my zsh

13,228

Download and run the script separately:

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

And you probably should undo the changes to /etc/pam.d/chsh.

Explanation:

Piping the text of a script to bash

cat script.sh | bash

is not the same as giving a script as parameter to bash

bash script.sh

By piping install.sh to bash, bash takes its standard input (stdin) from the pipe rather than the user. In this case chsh also seems to be receiving its input from stdin, which is the next line in the script after the call to chsh. (At the moment it seems to be an empty line. If it were your password, you wouldn't have any problem ;-) )

You can test this with this short script, in which read expects one line of input:

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

saved as script.sh:

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

Related videos on Youtube

UmAnusorn
Author by

UmAnusorn

Updated on September 18, 2022

Comments

  • UmAnusorn
    UmAnusorn over 1 year

    I try to install Oh my zsh. After install zsh (sudo apt-get update && sudo apt-get install -y zsh)

    Then I install

    sudo apt-get install -y curl  
    

    then install git.

    the problems occurs when I try this command.

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

    this is the 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
    \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
    

    Is there any idea?

    Note, that I have tried

    sudo vim /etc/pam.d/chsh  
    

    then comment auth required pam_shells.so. However, the error still occur.

  • Andrew Janke
    Andrew Janke about 9 years
    Great diagnosis. I was running in to the same issue on Debian, and your fix works for me. There's a couple open issues on the oh-my-zsh project for this (github.com/robbyrussell/oh-my-zsh/issues/3516) so hopefully this will get fixed upstream too. BTW, minor nitpick: curl prints the file to stdout instead of writing the file like wget; you need a curl -L ... > install.sh redirection at the end of the command.
  • Adaephon
    Adaephon over 8 years
    @AndrewJanke Thanks for the (not so) minor nitpick. It is fixed now.