실수로 .bashrc가 수정되어 암호를 올바르게 입력했지만 로그인 할 수 없습니다.


23

bashrc 파일로 크게 망쳤습니다. Gurobi를 설치하고 bashrc 파일에 경로 변수를 설정해야했습니다. 그래서 bashrc의 모든 텍스트를 경로 변수로 바꾸고 bashrc 파일을 저장했습니다. 또한 나쁜 일이 발생하면이 파일을 백업했는지 확인했습니다. 원래 수정되지 않은 백업 파일은 Downloads 폴더에 있습니다.

이제 시스템을 다시 시작했을 때 올바른 비밀번호를 제공했지만 로그인 할 수 없었습니다. 따라서 도움을 요청하고 싶습니다. 다운로드 디렉토리에 bashrc 파일이 여전히 있다는 사실을 감안할 때 어떤 종류의 수정이 가능합니까?


1
grub rescue 또는 라이브 세션을 사용하여 다운로드 디렉토리에서 잘못된 디렉토리로 복사하십시오.
Rinzwind

당신의 제안을 상세히 설명해 주시겠습니까? 이 우분투에 관해서 나는 아직도 초보자 해요
암호화

1
이제 이런 종류의 시나리오에서 로그인 화면에 존재했던 페일 세이프 옵션이 어떻게되는지 궁금합니다.
kasperd

3
왜 루트로 로그인하여 사용자의 .bashrc 파일을 수정하지 않습니까?
jamesqf

3
고전적인 방법은 단일 사용자 모드로 부팅하는 것입니다. 예를 들어 here에 설명 된대로 부트 로더를 중단하고 커널 및 부트 매개 변수를 지정하는 행에 "단일"을 추가해야합니다 .
Peter-복원 자 Monica Monica

답변:


38

LiveUSB 또는 LiveDVD를 사용하십시오.

라이브 세션으로 부팅하고 하드 드라이브를 마운트 한 다음 .bashrc수정 된 파일 위에 원본 파일을 복사하십시오 .

그러면 안전하게 재부팅 할 수 있습니다 (USB 또는 DVD 꺼내기).

일반 정보 : .bashrc파일 백업이없는 경우 liveUSB / DVD에서 파일을 사용할 수 있습니다.


백업의 요점은 파일이 설치 CD의 기본 파일과 다른 경우라고 가정합니다 .
Dmitry Grigoryev

2
그렇습니다. 그러나 당신이 무언가를 망 쳤고 정확히 무엇을 알지 못하거나 백업이 없을 수도 있습니다. 내가 작전에 대한 응답에 추가 된 이유의 백업이 없을 수도 있습니다 누구를위한 또한 일반 정보 질문)
마이클 Polovka

글쎄, 당신이 파괴 한 것의 백업이 없다면, 처음부터 시작해야합니다. 다행히도 OP에는 하나가 있습니다.
Dmitry Grigoryev

25

복구 모드부팅 할 수 있어야합니다. 그러면 루트 셸로 들어간 다음 문제를 해결할 수 있습니다. 따라서 추가 OS를 다운로드 할 필요가 없습니다.

우분투 위키에서 가져온 지침 :

  1. 컴퓨터를 켜십시오.
  2. BIOS로드가 완료되거나 거의 완료 될 때까지 기다리십시오. (이 기간 동안 컴퓨터 제조업체의 로고가 표시 될 수 있습니다.)
  3. Shift 키를 빠르게 누르고 있으면 GNU GRUB 메뉴가 나타납니다. (우분투 로고가 보이면 GRUB 메뉴에 들어갈 수있는 지점을 놓쳤습니다.)

  4. " Advanced options"로 시작하는 줄을 선택하십시오 .

  5. " (recovery mode)"로 끝나는 줄을 선택하십시오. 두 번째 줄은 다음과 같습니다.

    Ubuntu GNU/Linux, with Linux 3.8.0-26-generic (recovery mode)

  6. Return 키를 누르면 시스템이 부팅 프로세스를 시작합니다.

  7. 잠시 후 워크 스테이션에 여러 옵션이있는 메뉴가 표시됩니다. 옵션 중 하나 (목록 맨 아래로 스크롤해야 할 수도 있음)는 " Drop to root shell prompt"입니다. 이 옵션이 강조 표시된 상태에서 Return 키를 누르십시오.

  8. 루트 파티션은 읽기 전용으로 마운트됩니다. 읽기 / 쓰기를 마운트하려면 다음 명령을 입력하십시오

    mount -o remount,rw /

  9. / home, / boot, / tmp 또는 다른 마운트 지점이 별도의 파티션에있는 경우 다음 명령으로 마운트 할 수 있습니다

    mount --all

    ( /etc/mtab기록 할 수 있도록 8 단계 이후에 수행해야합니다 .)

복구 옵션이없는 경우 eGRUB에서을 눌러 표준 부팅 옵션을 편집 recovery하고 linux줄 의 끝에 추가하십시오 (기본적으로 마지막 줄, 바로 직전 initrd). 그런 다음을 눌러 F10실행하십시오.


9

라이브 CD 사용

  1. 라이브 CD / DVD를 사용하여 부팅하십시오. iso가없고 큰 iso를 다운로드하지 않으려면 Tiny Core-10MB를 다운로드하십시오.
  2. 명령 행 sudo mount /dev/sdXn /mnt에서 sdXnUbuntu 파티션이 있는 위치를 입력 하십시오.
  3. 을 입력하십시오 cd /mnt/home/<your user name>/Downloads.
  4. 이제이 명령을 사용 .bashrc하여 새 것으로 복원하십시오 ..bashrcmv ../.bashrc ../.bashrc_old && cp ./.bashrc ../
  5. 이제 시스템을 다시 시작하면 좋을 것입니다.

8

우분투 설치에 사용한 DVD 또는 USB를 넣고 부팅하십시오. "try Ubuntu"를 선택하고 데스크탑이 돌아올 때까지 기다리십시오.

로커의 디스크에 집이있는 디스크가 있는지 확인하십시오. 클릭하면 / media /에 마운트됩니다

터미널을 열고 cd다운로드로 가져와 파일을 집으로 복사하십시오. 그것은 :

cd /media/home/{your_username}/Downloads/
sudo cp .bashrc ../

DVD / USB없이 재부팅하십시오.


cp와 같은 것을 얻습니다 : 일반 파일 '../bashrc'를 만들 수 없습니다 : 권한이 거부되었습니다. :(
crypto

아 sudo를 사용하십시오! :)
Rinzwind

절름발이의 질문이었습니다. 죄송합니다. 수업은 배웠다! 그리고 당신이 제안한대로, 나는 Michal의 대답을 받아들입니다. 희망은 괜찮아요
crypto

문제 없습니다, 어쨌든 200입니다> :)
Rinzwind

6

SFTP를 통해 연결

다른 Linux 시스템의 내장 sftp명령 또는 WinSCP 또는 FileZilla가 설치된 PC 에서 SFTP를 통해 시스템에 연결 하고 파일을 복구하십시오. .bashrc파일은 일반적으로 (그것이 당신 조정할 가능성이 SFTP에 관여하지 않습니다 authorized_keys이 참여하게 파일을,하지만 의심 당신은 것을 했어).


또는 마찬가지로 ssh dash(또는 다른 비 bash 쉘)에 연결하십시오.
Peter Taylor

5

항상 두 개의 sudo 계정을 사용하는 것이 좋습니다. 해당 계정에 대한 일반 비밀번호를 제공하는 경우 모든 경우에 ALMOST에서 루트 역할을 할 수있는 계정입니다. 일시적으로 루트 역할을합니다.

한 계정을 망가 뜨리면 다른 계정으로 고칠 수 있습니다.

그러나 비밀번호를 알고 있다면 REGULAR 계정에 있고 'su-sudo-sudo-account-name'일 수 있습니다. 그럼 당신은 실수 계정으로 행동하고 'dc / home / screwed-up-account'후에 'sudo cp backup .bashrc'를 할 수 있습니다. 이제는 그것이 망쳐지지 않고 가능하지만 특정 상황에서는 확실하지 않습니다.


4

소수의 사람들이 말했듯이, 하나 이상의 "스도"계정이 가장 좋은 방법입니다. 둘째, .bashrc 파일에 많은 수정 작업을 수행하고 땜질을 시작하기 전에 메모리 스틱에 사본을 놓으면 공백으로 다시 시작할 필요가 없으며 마지막으로 알려진 good으로 돌아갈 수 있습니다. 이전 땜질을 모두 잃지 않고 bashrc 파일. 내 .bashrc 또는 .vimrc 또는으로 땜질 할 때 가장 먼저하는 일. . . 모든 구성 파일은 시작하기 전에 편리한 메모리 스틱에 복사됩니다. 나는 인간이다 나는 아이가 산만 롤. bash, vim, conky, openbox, tint2 등에 대한 구성 파일로 가득 찬 메모리 스틱이 있습니다.


또 다른 트릭은 RCS를 사용하여 구성 파일 (예 : bashrc, vimrc 또는 / etc의 항목)의 히스토리를 버전 화하는 것입니다.
ChuckCottrill

0

대신 루트로 로그인하고 백업을 사용하여 다른 답변에서와 같이 .bashrc를 수정하십시오.

최적의 안전을 위해 일반 X Windows 환경에 로그인하지 마십시오. 대신 control-alt-F2텍스트 콘솔로 이동하여 로그인하십시오. 문제를 해결 한 후에 exit는 루트 쉘에서 로그 아웃 한 다음 control-alt-F7X Windows로 돌아 가기 위해 실행하십시오. (X Windows는 tty7 대신 tty1에있을 수 있으므로 대신 사용해야 control-alt-F1합니다. tty6 또는 tty7은 전통적으로 전통적이지만 일부 배포판은 사람들이 tty를 거의 사용하지 않기 때문에 tty1로 옮기고 있습니다. 시스템 구성 방법을 실험 해보십시오.)


루트 계정은 Ubuntu에서 비활성화되어 있으므로 활성화하지 않으면 루트로 로그인 할 수 없습니다.
Seth

1
@Seth 부트 로더에 액세스 할 수 있으면 복구 모드로 부팅하여 루트 셸을 얻을 수 있습니다.
Bob

@ 밥 사실이지만, 그 대답은 아닙니다. 그래도 작동합니다.
Seth

1
@Seth Yea, 나는 이미 내 답변을 더 자세히 추가했습니다. 오, btw @ db48x, 일반적으로 X11은 tty7(Ctrl + Alt + F7)에서 실행됩니다 tty1.
Bob

나는 그들이 루트 계정을 비활성화했다는 것을 몰랐습니다. 어쩌면 나는 결국 하나의 우분투 머신을 업그레이드하지 않을 것입니다 ...
db48x

0

이 사건 후 PC를 켤 때마다 암호를 입력 한 후 화면이 잠시 깜박이고 로그인 화면이 다시 표시되는 것을 제외하고 일반적인 우분투 로그인 화면이 나타났습니다.

이것이 당신의 문제가 무엇인지 모르겠지만, 이것은 한 번 나에게 일어났습니다. shell-start (.bashrc, .bash_profile, .profile)에로드 된 파일 중 하나라도 텍스트를 stdout으로 출력하면 그래픽으로 로그인 할 수 없습니다. 여전히 tty (ctrl + alt + f1)로 로그인하여 로그인 한 다음 파일을 복구 할 수 있습니다.

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