chsh: Otentikasi PAM gagal


13

saya ingin mengubah shell default env

dan dijalankan chsh -s /bin/zshsebagai pengguna root,

tapi pesan kesalahan muncul: chsh: PAM authentication failed.

saya menemukan utas ini http://ubuntuforums.org/showthread.php?t=1702833

tapi jawabannya tidak menyelesaikan masalah saya

bantuan apa pun akan dihargai


ini adalah isi dari /etc/pam.d/chsh

#
# The PAM configuration file for the Shadow `chsh' service
#

# This will not allow a user to change their shell unless
# their current one is listed in /etc/shells. This keeps
# accounts with special shells from changing them.
auth       required   pam_shells.so

# This allows root to change user shell without being
# prompted for a password
auth            sufficient      pam_rootok.so

# The standard Unix authentication modules, used with
# NIS (man nsswitch) as well as normal /etc/passwd and
# /etc/shadow entries.
@include common-auth
@include common-account
@include common-session

ini adalah isi dari / etc / shells

# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/tmux
/usr/bin/screen
/bin/zsh
/usr/bin/zsh

Saya menemukan bahwa saya digunakan untuk menjalankan chsh -s zsh ini akan mengubah baris pertama /etc/passwdsebagai

root:x:0:0:root:/root:zsh

dan chshakan meminta kata sandi apa yang Anda coba

saya hanya mengedit /etc/passwdfile secara manual, dan semuanya baik-baik saja.

kesalahan bodoh dan terima kasih atas balasan Anda


Bisakah Anda memberikan /etc/pam.d/chsh Anda? (BTW itu umumnya dianggap ide yang baik untuk shell login root menjadi minimal / stabil - apakah ada alasan Anda ingin zsh sebagai shell default daripada memulai setelah login?)
symcbean

saya hanya ingin masuk otomatis zsh shell ketika saya baru saja masuk, mungkin ini tidak baik.
txworking

Jawaban:


5

Periksa file / etc / shells Anda dan tambahkan / bin / zsh ke file jika baris ini tidak ada.


3
jawaban ini menginspirasi saya untuk memeriksa /etc/passwdfile apakah saya memasukkan format nama shell yang benar. Thx
txworking

Bagi saya, menggunakan VM gelandangan, saya perlu berubah /etc/passwd. Terima kasih @txworking!
wulftone

Bagi saya, masalah ini disebut oleh konfigurasi yang salah untuk shell di dalam /etc/passwduntuk akun root ...
lancip

3

Periksa /etc/passwd. Dalam kasus saya, saya telah menetapkan shell yang tidak valid dengan chshsebelumnya dan itulah yang menyebabkan masalah.

Saya mengubahnya dari zshshell menjadi /bin/zshdan yang membuat masalah hilang untuk saya.


1

Sepertinya jalanmu salah. Untuk memeriksanya:

[nick ~]$ which zsh
/usr/bin/zsh

Jika hasilnya adalah / usr / bin / zch, ini seharusnya bisa dilakukan:

[nick ~]$ chsh -s /usr/bin/zsh

* edit untuk kesalahan ketik.


1

Saya menghadapi masalah yang sama. setiap kali saya mengetikkan chsh itu digunakan untuk meminta

chsh: PAM authentication failed

Tapi saya menyelesaikannya dengan melakukan beberapa modifikasi pada /etc/passwdfile tersebut

Users of kali-linux

cukup buka terminal root Anda dan modifikasi /etc/passwdfile yang dapat Anda gunakan pico, nano, atau vi editor untuk pekerjaan ini saya akan pergi vi

vi /etc/passwd

kemudian cari akun pengguna. dan ubah cangkang ke cangkang yang Anda inginkan, pastikan cangkang yang diinginkan terpasang di distro linux Anda agar pengguna baru dapat melihat cangkang apa yang ada di linux, cukup ketik

cat /etc/shells

itu daftar mereka di sana. Jika sama sekali Anda telah menginstal shell dan Anda tidak dapat melihatnya di /etc/shellAnda perlu membuat link dan path tempat shell katakanlah misalkan /bin/kshdalam /etc/shellsfile secara manual ...

misalnya Anda dalam bash dan Anda ingin mengubahnya ke ksh

cukup buka akun di /etc/passwdfile dan di edit bidang terakhir

/bin/bashke /bin/kshatau /bin/ksh93(seperti pada Anda cat /etc/shells)

cukup logout dan masuk dan Anda siap pergi ...

untuk pengguna distro lain (katakanlah) ubuntu

ketik

sudo -H gnome-terminal (untuk mendapatkan terminal root)

dan prosesnya sama seperti di atas karena Anda juga memiliki terminal root seperti pengguna kali-linux ..


1

Anda harus menjalankan kode Anda sebagai sudo:

sudo chsh -s /bin/zsh

Saya memiliki masalah yang sama juga, dan itu berhasil!

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.