로그인조차 할 수 없을 때 "로그인: 쉘 없음: 해당 파일이나 디렉터리 없음"을 수정하는 방법은 무엇입니까?

로그인조차 할 수 없을 때 "로그인: 쉘 없음: 해당 파일이나 디렉터리 없음"을 수정하는 방법은 무엇입니까?

설치했습니다어류(사용자 친화적인 대화형 명령줄 셸)을 Linux 서버에 설치했는데 나중에 누군가가 제거했지만 잘 모르겠습니다. 무심코 실행했더니 chsh -s /usr/local/bin/fish이제 서버에 로그인이 안되네요. "로그인: 쉘 없음: 해당 파일 또는 디렉토리가 없습니다"라는 오류 메시지가 나타납니다. 이는 쉘 피쉬가 더 이상 존재하지 않는다는 것 같습니다.

서버에서는 CLI 인터페이스만 제공하는데, 로그인도 되지 않는데 어떻게 로그인 쉘을 변경할 수 있나요?

답변1

루트 계정에 대한 액세스 권한이 있는 경우 chsh -u user -s $SHELL.

부팅 프로세스에 액세스할 수 있는 경우 init=$SHELL단일 사용자 셸에 추가하여 이 문제를 다시 해결할 수 있습니다 chsh -u user -s $SHELL(initrd 이미지가 포함된 2단계 부팅을 사용하는 일부 시스템에서는 대신 사용해야 할 수도 있음 real_init). . /etc/passwd읽기-쓰기(사용 mount -o remount,rw /또는 이와 유사한) 기능이 포함된 파일 시스템을 다시 마운트해야 할 수도 있습니다 .

그렇지 않고 su다른 사용자의 사용자로 들어갈 수 있다면 시도 su user -c $SHELL하거나, 사용자에게 SSH로 접속할 수 있다면 다음과 같은 것을 시도할 수 있습니다 ssh user@localhost $SHELL.

라이브 CD/USB로 부팅하고 수동으로 마운트 /하고 수정할 수도 있습니다 /etc/passwd.

답변2

나도 같은 문제가 있습니다. 이 솔루션이 저에게 효과적입니다.

  1. 라이브 모드에서 라이브 CD(저는 debían 7.6 사용)로 부팅합니다.
  2. 라이브 터미널에서 다음 명령을 실행하여 루트 액세스 권한을 얻으세요.passwd root
  3. 크래시 배포판 파티션의 디스크를 마운트합니다.
  4. 이 디스크로 이동하여 다음 명령을 실행하십시오.cat etc/shells
  5. nano etc/passwd물고기 참조를 제거하고 포인트 4의 유효한 콘솔 이름을 입력하십시오 .
  6. 재부팅하고 즐기십시오.

답변3

로그인하려고 할 때 다음 메시지가 나타납니다. /sbin/nologin을 실행할 수 없습니다. 해당 파일이나 디렉터리가 없습니다.

이것이 내가 한 일이고 그것은 나에게 효과적이었습니다.

  1. 슈퍼유저 권한이 있는 다른 계정으로 시스템에 로그인했습니다.
  2. 다음 명령을 입력하십시오.

sudo chsh -u 사용자 -s $SHELL

여기서 user는 문제가 있는 계정 이름입니다.

  1. 시스템 로그아웃
  2. 문제가 발생한 계정 이름으로 로그인하세요.

답변4

Elementary OS Loki에서도 동일한 문제에 직면했습니다. 문제를 해결하기 위해 다음을 수행했습니다.

  1. 먼저 zsh와 관련된 모든 것을 제거합니다.sudo apt-get zsh 제거 && apt-get 자동 제거
  2. 그 후에 내가 편집했어/etc/passwd파일을 찾아보니 루트 사용자의 쉘이 정의되어 있지 않아서 쉘 /bin/bash를 편집했는데 이 모든 것이 문제 해결에 도움이 되었습니다.

관련 정보