다음을 사용하여 사용자(user1)의 비밀번호를 변경했습니다.root
passwd user1
하지만 시도 ssh user@localhost
하거나 통과 gdm
하거나 tty
항상 실패할 때
로그 journalctl
표시
Failed password for user1 from ::1
FAILED LOGIN 1 FROM tty3 FOR user1, Authentication failure
pam_unix(gdm-password:auth): conversation failed
pam_unix(gdm-password:auth): auth could not identify password for [user1]
새로운 Arch Linux 설치(64비트)를 사용하고 있습니다.
답변1
해결책은 /etc/passwd
파일을 변경하는 것입니다.
쉘 user1
에서 /usr/bin/bash
안으로/bin/bash
답변2
/etc/shells
해결 방법은 에 설명된 파일에 있습니다 man 5 shells
.
한마디로"[that]은 유효한 로그인 셸의 전체 경로 이름을 포함하는 텍스트 파일입니다.".
전통적 으로 및 /etc/shells
만 포함됩니다 ./bin/sh
/bin/bash
따라서 문제를 " 수정 " /usr/bin/bash
하려면 ./etc/shells
/bin/bash
chsh
최신 배포판에는 /bin
심볼릭 링크가 있으므로 /usr/bin
이전 수정 사항이 정확해야 합니다. 이로 인해 많은 프로그램이 중단될 수 있습니다.아니요해당 getusershell()
호출을 사용하되 하드코딩된 셸 경로를 사용하세요.
그러나 의존해야 할 유일한 쉘은 /bin/sh
.
답변3
1.루트로 로그인
사용자 이름을 루트로 입력합니다. 저는 단순화를 위해 텍스트(tty# 예: tty2) 모드를 선호합니다.
Ctrl + Alt + F#(모든 기능 키 F2-F7)을 통해 엽니다.
username : root
password :
2.사용자의 쉘을 확인하십시오
$less /etc/passwd
당신은 다음과 같은 것을 볼 수 있습니다
mr_rathod:x:1000:1000:Abhay Raj Singh Rathod:/home/mr_rathod:/usr/bin/bash (unaccessible shell)
mr_rathod:x:1000:1000:Abhay Raj Singh Rathod:/home/mr_rathod:/bin/zsh (unvailable shell)
삼.비밀번호 파일 변경passwd 파일을 편집하여 문제를 해결하세요.
# nano /etc/passwd
쉘을 다음으로 변경하십시오./bin/bash대부분의 UNIX 기반 시스템과 동일하게 작동