chsh: การรับรองความถูกต้อง PAM ล้มเหลว


13

ฉันต้องการเปลี่ยนเชลล์เริ่มต้น env

และเรียกใช้chsh -s /bin/zshในฐานะผู้ใช้รูท

แต่ข้อความแสดงข้อผิดพลาดปรากฏขึ้น: chsh: PAM authentication failed.

ฉันพบกระทู้นี้http://ubuntuforums.org/showthread.php?t=1702833

แต่คำตอบไม่ได้แก้ปัญหาของฉัน

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม


นี่คือเนื้อหาของ /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

นี่คือเนื้อหาของ / 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

ฉันพบว่าฉันเคยใช้งานchsh -s zsh สิ่งนี้จะเปลี่ยนบรรทัดแรก/etc/passwdเป็น

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

และchshจะขอรหัสผ่านเมื่อคุณพยายาม

ฉันเพิ่งแก้ไข/etc/passwdไฟล์ด้วยตนเองและทุกอย่างก็โอเค

ความผิดพลาดโง่ ๆ และขอบคุณสำหรับคำตอบของคุณ


คุณสามารถให้ /etc/pam.d/chsh ของคุณได้หรือไม่? (โดยทั่วไปแล้ว BTW จะถือว่าเป็นความคิดที่ดีสำหรับรูทการเข้าสู่ระบบของเชลล์ว่ามีความเสถียรน้อยที่สุด - คุณต้องการให้ zsh เป็นเชลล์เริ่มต้นแทนที่จะเป็นเริ่มต้นหลังจากเข้าสู่ระบบใช่หรือไม่)
symcbean

ฉันแค่ต้องการป้อน zsh shell โดยอัตโนมัติเมื่อฉันเพิ่งเข้าสู่ระบบบางทีนี่อาจไม่ดี
txworking

คำตอบ:


5

ตรวจสอบไฟล์ / etc / shells ของคุณและเพิ่ม / bin / zsh ไปยังไฟล์หากไม่มีบรรทัดนี้


3
คำตอบนี้เป็นแรงบันดาลใจให้ฉันตรวจสอบ/etc/passwdไฟล์ว่าฉันใส่ชื่อเชลล์ในรูปแบบที่ถูกต้องหรือไม่ thx
txworking

สำหรับผมใช้คนจรจัด VM, /etc/passwdผมจำเป็นต้องมีการเปลี่ยนแปลง ขอบคุณ @txworking!
wulftone

สำหรับผมแล้วปัญหาถูกเรียกโดยการกำหนดค่าที่ผิดพลาดสำหรับภายในเปลือก/etc/passwdสำหรับบัญชีราก ...
เรียว

3

/etc/passwdตรวจสอบของคุณ ในกรณีของฉันฉันได้ระบุเชลล์ที่ไม่ถูกต้องด้วยchshก่อนหน้านี้และนั่นคือสิ่งที่ทำให้เกิดปัญหา

ฉันเปลี่ยนจากzshเปลือกเป็น/bin/zshและทำให้ปัญหาหายไปสำหรับฉัน


1

ดูเหมือนว่าเส้นทางของคุณฉันผิด วิธีตรวจสอบ:

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

หากผลลัพธ์คือ / usr / bin / zch สิ่งนี้ควรทำเคล็ดลับ:

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

* แก้ไขสำหรับการพิมพ์ผิด


1

ฉันประสบปัญหาเดียวกัน เมื่อใดก็ตามที่ฉันพิมพ์ในchshมันจะใช้เพื่อแจ้งให้

chsh: PAM authentication failed

แต่ฉันแก้ไขมันด้วยการปรับเปลี่ยนบางอย่างใน/etc/passwdไฟล์

Users of kali-linux

เพียงแค่เปิดรูทเทอร์มินัลและแก้ไข/etc/passwdไฟล์ที่คุณสามารถใช้โปรแกรมแก้ไข pico, nano หรือ vi สำหรับงานนี้ฉันจะทำโดย vi

vi /etc/passwd

จากนั้นค้นหาบัญชีผู้ใช้ และเปลี่ยนเชลล์เป็นเชลล์ที่คุณต้องการตรวจสอบให้แน่ใจว่าเชลล์ที่ต้องการในการติดตั้งใน distros ของ linux ของคุณสำหรับผู้ใช้ใหม่เพื่อดูว่ามีเชลล์ใดบ้างใน linux ที่เพิ่งพิมพ์

cat /etc/shells

มันแสดงรายการไว้ที่นั่นหากคุณติดตั้งเชลล์แล้วและคุณไม่สามารถเห็นได้/etc/shellคุณจำเป็นต้องสร้างลิงก์และพา ธ ตำแหน่งของเชลล์พูดเพื่อสมมติว่า/bin/kshอยู่ใน/etc/shellsไฟล์ด้วยตนเอง ...

ตัวอย่างเช่นคุณกำลังทุบตีและคุณต้องการเปลี่ยนเป็น ksh

เพียงไปที่บัญชีใน/etc/passwdไฟล์และในการแก้ไขฟิลด์สุดท้าย

/bin/bashถึง/bin/kshหรือ/bin/ksh93(ในของคุณcat /etc/shells)

เพียงออกจากระบบและเข้าสู่ระบบและคุณพร้อมที่จะไป ...

สำหรับผู้ใช้งาน distros อื่น ๆ (พูด) ubuntu

พิมพ์ใน

sudo -H gnome-terminal (เพื่อรับรูทเทอร์มินัล)

และกระบวนการนี้เหมือนกันกับที่คุณมี root terminal เหมือนผู้ใช้ kali-linux


1

คุณต้องเรียกใช้รหัสของคุณเป็น sudo:

sudo chsh -s /bin/zsh

ฉันมีปัญหาเดียวกันด้วยและมันก็ใช้ได้!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.