tty가 Sh 또는 Bash를 사용하도록 강제하는 방법

tty가 Sh 또는 Bash를 사용하도록 강제하는 방법

내 Linux용 대화형 셸을 만들었고 chsh에서 이를 테스트하기 위해 편집했습니다. 그러나 버그가 있어서 지금은 bash/sh로 돌아갈 수 없습니다. 내 컴퓨터에서 어떤 명령도 입력할 수 없고 어떤 작업도 수행할 수 없습니다.

우분투 20.04를 사용하고 있습니다.

sh/bash를 실행하라는 매개변수를 사용하여 시스템에 sshing을 시도했지만 작동하지 않는 것 같고 내가 만든 쉘로 돌아갑니다.

내가 시도한 것은 다음과 같습니다.

ssh username@hostname -p 2222 bash
ssh username@hostname -p 2222 -t bash

내 루트 계정에는 비밀번호가 없어서 활성화되지 않은 것 같고(제 생각에는) chsh를 수행할 다른 사용자 계정이 없습니다.

쉘을 수정하고 머신을 사용할 수 있도록 머신이 tty에서 Sh 또는 Bash를 사용하도록 하려면 어떻게 해야 합니까?

아니면 컴퓨터를 다시 설치하는 것 외에 쉘을 제거할 수 있는 방법이 있습니까?

답변1

여기에 설명된 이유로 인해 SSH를 통해 이 문제를 해결할 수 없을 것 같습니다.

그러나 컴퓨터에 물리적으로 접근할 수 있는 경우에는 다시 설치할 필요가 없습니다.

먼저 부팅을 일시 중지하고 grub 명령줄을 편집하여 rw init=/bin/sh또는 rw init=/bin/bash. 그런 다음 파일을 편집 /etc/passwd하고 vipw로그인 쉘을 합리적인 것으로 변경하십시오. 바라보다

이것이 가능하지 않은 경우 언제든지 라이브 복구 CD/DVD/USB를 사용하여 이전 루트 파티션을 마운트하고 /etc/passwd를 편집할 수 있습니다(또는 이전 시스템으로 chroot하고 chsh를 사용할 수 있지만 이는 더 복잡합니다). ).

답변2

루트(로컬 또는 원격)로 로그인할 수 있는 경우 chsh(1)로그인 변경 쉘을 사용할 수 있습니다(또는 vipw(1)편집 /etc/passwd및 친구를 사용하거나 파일을 직접 편집할 수 있습니다).

조심하세요. 인터넷에 있는 아무 사람이나 믿지 마세요. 읽어보세요.그리고 이해하다실행 중인 명령입니다.

관련 정보