linux root 패스워드 복구 방법
사람의 기억력이 지구상의 동물들 중에서 제일 좋다고는 하지만, 그것이 “까먹지 않음”을 보장 하는 것은 아니다. 평상시 root계정으로 패스워드 쳐서 백만번씩 들어가던 사람도 순간 패스워드를 잊어 버릴 수 있다. “포맷 해버리면 그만이지 뭐!!” 라고 생각도 잠시, 이 컴퓨터 안에 수많은 “야구 동영상”이 들어있다는 생각에 이러지도 저러지도 못하는 상황이 발생한다. 이런 긴급상황에 어떻게 대처하는 지 알아보자.
준비물이 하나 있다. 부팅CD를 준비하도록 하자.
CD로 부팅하기 위해 각자의 메인보드에서 BIOS로 들어가는 키를 눌러 BIOS화면으로 들어간다.
boot탭에 CD-ROM이 보일 것이다. 이것을 부팅 우선순위 맨 위에다 놓는다. 그리고 F10을 눌러 저장하고 종료한다.
이제 다시 부팅한다.
새로이 뜨는 화면의 boot: 부분에 linux rescue라고 쓴 후 엔터를 누른다.
언어 선택으로 넘어간다. Korean이 있을 것이라는 기대는 금물. 세계 공통어 English를 선택한다.
Keyboard Type이다. 역시 us를 선택하자.
root암호를 해제하는 것에 network은 필요 없다. no를 선택하자.
/mnt/sysimage 디렉토리에 Linux 인스톨을 mount하겠다고 써있다. Continue를 누르면 마운트된 파일 시스템을 read-write, Read-only를 누르면 read만 하겠다고 한다. Skip를 누르면 바로 커맨드 창으로 간다고 한다. Continue를 누르자.
root환경으로 만들려면 나중에 commend창에 chroot /mnt/sysimage를 입력하라고 써있다. OK를 눌러 커맨드 창으로 가자.
이제 commend창이다. 위에서 입력하면 root환경으로 간다는 chroot /mnt/sysimage를 입력한다.
sh-3.2# chroot /mnt/sysimage
각 계정의 password가 있는 파일은 /etc/shadow이다. vi editor을 열어 들어가도록 하자.
sh-3.2# vi /etc/shadow
파일을 열면 맨 윗쪽에 root라고 써 있고, 콜론이 찍혀있다. 빨간 줄이 그어져 있는 부분이 암호화된 비밀번호이다. 이 부분을 다 지우도록 하자(빨간 줄 앞뒤의 콜론은 지우지 않도록 한다)
암호화된 비밀번호를 지운 후 vi commend mode에서 :wq!를 입력해서 저장한다. 읽기 전용의 파일이므로 끝에 느낌표를 붙이지 않으면 저장되지 않음을 유의하자.
(/etc/shadow : 저 읽기 전용이예요~ 그것도 root계정만!!)
Sync를 입력 한 후 reboot를 입력하여 재부팅 한다. 필자가 입력하려고 했던 init 0은 되지 않았다.
sh-3.2# sync
sh-3.2# reboot
부팅 처음 화면에서 BIOS로 가는 키를(필자는 F2) 입력하여 BIOS화면에 들어간다.
그 후 CD-ROM위에 hard drive를 두어 다시 부팅 되었을 때 도로 하드로 부팅되도록 한다. 다음과 같이 바꾼 후 F10키를 눌러 저장 후 종료한다.
다시 부팅되고 Linux의 유저 입력 화면이 나왔다. 이제 root 계정으로 접속 해 보자.
패스워드를 확인 하지 않고 바로 X 윈도우 화면으로 넘어 감을 확인 할 수 있다.
다시는 root 암호를 까먹지 않는다는 다짐과 함께 새로운 password를 입력 해 주자.