본문 바로가기

Engineering/Redhat Linux

[Redhat Linux] root 패스워드 초기화

리눅스 시스템의 root 패스워드를 잊어버렸을 때, 패스워드를 초기화하는 방법.


[01] Grub Edit mode 진입

Linux Kernel 선택 화면

 

시스템 재부팅 후, 커널 선택 단계에서 'e' 키를 눌러 Grub Edit mode에 진입한다.

 

 


 

[02] rd.break 명령 옵션줄 추가

 

linux 라인의 끝에 rd.break 옵션줄을 추가해준다. 이후 Ctrl + x를 눌러 시스템을 부팅한다.

 

dracut은 초기 램 디스크 파일 시스템(initramfs)을 생성 및 관리하는 도구이다. 다양한 부팅스크립트와 모듈을 포함하고 있어서 시스템이 다양한 환경에서 부팅될 수 있도록 지원한다고 한다.
rd.break는 dracut에서 사용되는 커널 파라미터로 dracut이 initramfs를 처리하는 과정 도중, 선언 지점에서 부팅을 중단하고 쉘을 제공한다고 한다.

 

 

 


[03] 잃어버린 혹은 잊어버린(ㅋ) root 패스워드를 바꾸자

 

1) /sysroot 에 read & write 권한으로 다시 마운트

mount -o remount,rw /sysroot

 

위에서 언급한 initramfs가 root 파일시스템에 임시로 마운트를 하는데, 이때 이용하는 것이 /sysroot라고 한다.
initramfs가 초기화 작업을 완료하면 'pivot_root' 명령어를 사용하여 '/sysroot' 에서 '/'로 루트 파일시스템이 전환된다고 한다.

 

 2) root 디렉토리를 /sysroot로 변경

chroot /sysroot

 

현재 shell의 root 디렉토리를 '/sysroot'로 변경한다. 이렇게 하면 늘 먹던대로 '/sysroot' 에서 명령 실행할 수 있다.

 


3) root passwd 변경

 

passwd

#변경하고 싶은 패스워드로 변경해주자.

 


4) SELinux relabeling 

touch / .autorelabel

다음 부팅에서 selinux 레이블들을 리라벨링하도록 트리거하는 데 사용된다고 한다. 현재 시스템은 selinux를 비활성화 했기 때문에 안해줘도 무방한 것을 확인했다. selinux를 사용하는 시스템에서는 필요한 작업인거 같다.


 

위의 모든 작업이 끝났다면, exit 두번 하여 시스템을 재부팅한다.