Hata Parolası: chsh: PAM: Yüklemeye çalıştığınızda kimlik doğrulama hatası Oh my zsh


11

Oh zsh'ımı kurmaya çalışıyorum. Kurduktan sonra zsh ( sudo apt-get update && sudo apt-get install -y zsh)

Sonra yüklerim

sudo apt-get install -y curl  

sonra git'i yükleyin.

Bu komutu denediğimde sorunlar oluşur.

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

bu günlük

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

Herhangi bir fikir var mı?

Not, denedim

sudo vim /etc/pam.d/chsh  

sonra kimlik doğrulaması gerekli pam_shells.so. Ancak, hata yine de oluşur.

Yanıtlar:


16

Komut dosyasını ayrı olarak indirip çalıştırın:

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

Ve muhtemelen değişiklikleri geri almalısınız /etc/pam.d/chsh.

Açıklama:

Bir komut dosyasının metnini bash

cat script.sh | bash

bir komut dosyasını parametre olarak vermekle aynı şey değildir bash

bash script.sh

Boru bağlantısı install.shile bashbash, standart girişini ( stdin ) kullanıcı yerine borudan alır. Bu durumda chsh, girdiyi çağrıdan sonra komut dosyasındaki bir sonraki satır olan stdin'den alıyor gibi görünüyor chsh. (Şu anda boş bir satır gibi görünüyor. Parolanız olsaydı, sorun olmazdı ;-))

Bunu, readbir girdi satırı bekleyen bu kısa komut dosyası ile test edebilirsiniz :

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

olarak kaydedildi script.sh:

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

2
Harika teşhis. Debian'da da aynı sorunla karşılaşıyordum ve düzeltmeniz benim için çalışıyor. Bunun için oh-my-zsh projesinde birkaç açık sorun var ( github.com/robbyrussell/oh-my-zsh/issues/3516 ) bu yüzden umarım bu yukarı yönde de sabitlenir. BTW, küçük nitpick: curldosyayı şöyle yazmak yerine stdout'a yazdırır wget; curl -L ... > install.shkomutun sonunda bir yeniden yönlendirmeye ihtiyacınız var .
Andrew Janke

@AndrewJanke (Nitekim olmayan) küçük nitpick için teşekkürler. Şimdi düzeltildi.
Adaephon
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.