chsh : PAM 인증 실패


13

기본 쉘 환경을 변경하고 싶습니다

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당신이 시도 whaterver 암호를 요청합니다

/etc/passwd파일을 수동으로 편집 하면 모든 것이 정상입니다.

멍청한 실수와 답장 감사합니다


/etc/pam.d/chsh를 제공 할 수 있습니까? (BTW 일반적으로 루트 로그인 쉘이 최소 / 안정적이라고 생각하는 것이 좋습니다. 로그인 후에 시작하지 않고 zsh를 기본 쉘로 사용하려는 영역이 있습니까?)
symcbean

방금 로그인했을 때 zsh 셸을 자동 입력하고 싶습니다.
txworking

답변:


5

이 줄이 없으면 / etc / shells 파일을 확인하고 / bin / zsh를 파일에 추가하십시오.


3
이 답변 /etc/passwd은 올바른 형식의 셸 이름을 입력했는지 여부를 파일 에서 확인하도록 영감을주었습니다 . Thx
txworking

나를 위해 방랑 한 VM을 사용하여을 변경해야했습니다 /etc/passwd. @txworking 감사합니다!
wulftone

나를 위해, 문제는 /etc/passwd루트 계정에 대한 쉘 내부의 잘못된 구성에 의해 호출 됩니다 ...
taper

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

그런 다음 사용자 계정을 검색하십시오. 쉘을 원하는 쉘로 변경하십시오. 새로운 사용자가 리눅스 배포판에 원하는 쉘을 설치하여 리눅스에 어떤 쉘이 있는지 확인하십시오.

cat /etc/shells

쉘을 설치했고 그것을 볼 수 없다면 쉘 /etc/shell의 링크와 장소 경로를 만들어야한다고 가정하십시오./bin/ksh 에서 /etc/shells파일을 수동으로 ...

예를 들어 bash에 있고 ksh로 변경하려고합니다.

그냥 계정으로 이동 /etc/passwd파일 및 마지막 필드의 하십시오.

/bin/bash/bin/ksh또는 /bin/ksh93(같은에서cat /etc/shells )

로그 아웃 및 로그인 만하면됩니다.

다른 배포판 사용자 (예 : 우분투)

입력

sudo -H gnome-terminal (루트 터미널을 얻기 위해)

kali-linux 사용자와 같은 루트 터미널을 가지고있는 것처럼 프로세스는 위와 동일합니다.


1

코드를 sudo로 실행해야합니다.

sudo chsh -s /bin/zsh

나도 같은 문제가 있었고 효과가있었습니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.