리눅스에서 root 패스워드 분실로 인해 시스템에 접근할 수 없는 상황이 발생할 수 있다. 이럴 때는 리눅스 시스템을 재부팅하고, Recovery Mode(복구 모드)로 접속하여 root 패스워드를 재설정하는 방법으로 문제를 해결할 수 있다. 이 방법은 원격(SSH)으로는 진행이 불가하며 반드시 시스템 서버에 직접 접근해서 진행해야 된다.
이 포스트에서 사용한 OS는 CentOS 8 버전이다.
1. 리눅스 재부팅 > 부트 로더 메뉴로 접속
먼저 CentOS 시스템을 재부팅한다. 부팅 시 일시적으로 아래 화면이 나오는데, 이때 바로 'e' 키를 누른다. 만약 타이밍을 놓쳤으면 다시 재부팅한다.

2. 부트 로더 메뉴 > Recovery Mode로 접속
부트 로더 메뉴에 접속하면 아래와 같은 화면이 나온다.
linux 라인에 커서를 두고 키보드의 End 키를 누르면 커서가 맨 뒤로 이동한다. 여기에 다음의 내용을 입력한다.
rd.break enforcing=0

이 상태에서 Ctrl+x 키를 누르면 시스팀에 다시 부팅되고 Recovery Mode로 접속된다.
3. root 패스워드 재설정
Recovery Mode에 진입한 화면이다.

/sysroot 디렉토리를 root 디렉토리처럼 사용하도록 설정하고, root 패스워드를 재설정한다.
# mount -o remount,rw /sysroot
# chroot /sysroot
# passwd root
root 패스워드가 정상적으로 변경되면 updated successfully가 뜰 것이다.
root 패스워드를 재설정하면 파일 시스템의 일부 메타데이터가 수정되고, 이에 따라 SELinux 라벨링이 변경될 수 있다. 그래서 SELinux가 파일 시스템의 새 라벨을 자동으로 재생성하여 정책을 업데이트하도록 .autorelabel 파일을 생성하고, exit로 chroot를 빠져나와 시스템을 재부팅한다.
# touch /.autorelabel
# exit
# reboot
4. root 접속
리눅스가 부팅되면 다시 설정한 패스워드로 root 접속을 시도해 본다. 정상적으로 접속이 되면 성공이다.
'IT운영 > 리눅스' 카테고리의 다른 글
리눅스 CentOS, Redhat SSH 22 포트 변경 방법 (0) | 2023.03.19 |
---|---|
CentOS 8 폐쇄망에서 NTP 서버 설치 및 설정 (서버, 클라이언트) (0) | 2023.03.19 |
리눅스 CentOS 8 로컬 YUM Repository 구성하기 (0) | 2023.03.05 |
리눅스 CentOS 8 ISO 다운로드 및 설치 방법 (0) | 2023.03.05 |
리눅스 SELinux 영구적 비활성화, 임시 비활성화 방법 (0) | 2023.03.04 |