리눅스 서버의 root 비밀번호를 분실하는 경우가 종종 있다. 일반 사용자 비밀번호 분실하는 거야 뭐 root로 로그인해서 비밀번호 바꿔버리면 그만인데 root 비밀번호를 분실하면 매우 귀찮은 상황이 되긴한다. 그래도 방법은 있다.
root 비밀번호 분실 해결
1. sudo 계정으로 변경
sudo 권한이 있는 계정이 있고 그 계정으로 접속할 수 있으면 다행이다. sudo 권한으로 root 계정의 비밀번호를 바꿔주면 된다.
sudo passwd root
그런 상황이 아니면 아쉽지만 다음 방법을 쓴다.
2. 재부팅 시 부트로더 스크립트 변경
놀랍게도 회사에서 운영되고 있는 리눅스 서버의 비밀번호를 담당자가 분실하는 경우도 종종 있는데 이럴 때 왜 번거로워지냐하면 서버 재부팅을 해야한다. 운영 중인 서버의 재부팅은 서비스 다운타임을 의미하기 때문에 업무 외 시간에 해야할 가능성이 높다.
CentOS 7을 기준으로 설명한다. 다른 배포판도 비슷하긴 할텐데 혹시 다른 점이 있다면 구글링 해보면 금방 나온다.
부팅할 때 이런 화면이 나오면 키보드 e 버튼을 눌러서 부트로더 스크립트를 수정할 수 있도록 한다. 여기서 눈치챌 수 있겠지만 원격으로는 부팅 과정을 볼 수가 없기 때문에 이 작업을 할 수가 없다. 실제 서버 콘솔에 붙어서 해야 한다.
e를 누르면 이렇게 부트로더 스크립트를 볼 수 있는데 linux16으로 시작하는 라인을 찾는다. 그리고 그 끝에
rd.break
를 추가한다. 부팅 과정을 중지하는 방법이다.
수정했으면 ctrl + x를 눌러 편집한 부트로더를 실행한다.
switch_root:/# 프롬프트로 명령어를 입력할 수 있다. 이제 아래의 명령어를 순서대로 입력한다.
mount -o remount rw /sysroot
chroot /sysroot
passwd
--비밀번호 변경
touch /.autorelabel
exit
reboot
리부팅 후엔 변경된 root 비밀번호를 사용할 수 있다.