chsh selalu meminta kata sandi, dan dapatkan `PAM: Kegagalan otentikasi`

16

Hari ini saya mencoba beralih ke shell lain.

Pertama saya mencoba ikan, dan biasa chsh -s fishmengganti ikan ke default. Setelah beberapa waktu saya menemukan itu tidak dapat digunakan ~/.bashrc(&& perlu diganti oleh dan).

Karena saya lebih suka menggunakan kembali ~/.bashrc, saya menemukan zshyang sepertinya lebih mudah dan mengikuti dokumentasi ini untuk beralih zsh.

Saat saya berlari sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)", tiba-tiba ia meminta saya untuk masuk Password:. Saya memasukkan kata sandi root tetapi berhasil PAM: Authentication failure.

Kemudian saya mencoba chsh -s bashdan chsh -s zsh, selalu meminta saya untuk memasukkan kata sandi dan melemparkannya PAM: Authentication failure(bukan kata sandi sistem). Saya tidak tahu ini.

Mithril
sumber
Periksa apakah Anda memiliki alias atau sesuatu dengan sudo di .bashrc / .zshrc / .etcrc Anda
Lucas Serafim

Jawaban:

30

Berkat pertanyaan ini pada Server Fault , saya mengatasi ini dengan:

Berubah /etc/pam.d/chsh:dari:

auth       required   pam_shells.so

untuk

auth       sufficient   pam_shells.so

Maka itu tidak meminta kata sandi lagi. Tapi saya pikir lebih baik mengembalikan pengaturan chsh setelah mengganti shell.

Mithril
sumber
menggunakan sed: sudo sed s / diperlukan / cukup / g -i /etc/pam.d/chsh
ospider
Sayangnya tidak berhasil. Tapi saya berkomentar keluar baris itu, mengganti shell dan menghapus komentar, lagi. Jadi petunjukmu adalah yang tepat untukku.
Markus Zeller
4
  1. Gunakan which zshuntuk menemukan zshlokasi Anda .

    $ which zsh
    /usr/bin/zsh
    
  2. Tambahkan /usr/bin/zshke/etc/shells

  3. Periksa /etc/passwdapakah konfigurasi Anda adalah/usr/bin/zsh

  4. Lari chsh -s /usr/bin/zsh

Xu Radman
sumber
Ini hanya berfungsi untuk pengguna normal, tetapi tidak untuk root. Apakah ini fitur keamanan?
Timo