Kata Sandi Kesalahan: chsh: PAM: Kegagalan otentikasi ketika mencoba menginstal Oh my zsh


11

Saya mencoba menginstal Oh my zsh. Setelah menginstal zsh ( sudo apt-get update && sudo apt-get install -y zsh)

Lalu saya instal

sudo apt-get install -y curl  

kemudian instal git.

masalah terjadi ketika saya mencoba perintah ini.

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

ini adalah 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

Apakah ada ide?

Perhatikan, bahwa saya sudah mencoba

sudo vim /etc/pam.d/chsh  

lalu komentar auth diperlukan pam_shells.so. Namun, kesalahan masih terjadi.

Jawaban:


16

Unduh dan jalankan skrip secara terpisah:

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

Dan Anda mungkin harus membatalkan perubahan ke /etc/pam.d/chsh.

Penjelasan:

Memipis teks skrip ke bash

cat script.sh | bash

tidak sama dengan memberikan skrip sebagai parameter untuk bash

bash script.sh

Dengan melakukan piping install.shke bash, bash mengambil input standar ( stdin ) dari pipa daripada pengguna. Dalam hal ini chshjuga tampaknya menerima input dari stdin , yang merupakan baris berikutnya dalam skrip setelah panggilan ke chsh. (Saat ini tampaknya menjadi baris kosong. Jika itu kata sandi Anda, Anda tidak akan memiliki masalah ;-))

Anda dapat menguji ini dengan skrip pendek ini, di mana readmengharapkan satu baris input:

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

disimpan sebagai script.sh:

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

2
Diagnosis yang bagus. Saya mengalami masalah yang sama pada Debian, dan perbaikan Anda berhasil untuk saya. Ada beberapa masalah terbuka pada proyek oh-my-zsh untuk ini ( github.com/robbyrussell/oh-my-zsh/issues/3516 ) jadi semoga ini akan diperbaiki juga di hulu. BTW, minor nitpick: curlmencetak file ke stdout alih-alih menulis file seperti wget; Anda memerlukan curl -L ... > install.shpengalihan di akhir perintah.
Andrew Janke

@AndrewJanke Terima kasih untuk nitpick minor (tidak begitu). Sudah diperbaiki sekarang.
Adaephon
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.