IT 대장간

리눅스 ROOT계정 패스워드 분실&재설정 본문

Linux

리눅스 ROOT계정 패스워드 분실&재설정

태장장이 2023. 7. 18. 15:25

*무언가에 꽂혀서 급히 VM을 만들어놓고 한참 뒤에 무언가 테스트를 하겠다고 접속해보면 ROOT 계정의 패스워드가 생각나지 않는 경우가 많음

 

*패스워드 재설정

1) OS 시작 시 [END] 키를 눌러 고급 옵션 기능 선택

   - Advanced option 선택

 

 

2) [E] 키를 눌러 편집모드 진입 후 아래와 같이 편집

  - 아마 나와 같이 명령어 라인이 구성 안되어 있을 수 있다. 이는 설치된 OS에서 하위 버전에 대한 지원, 이전 부팅 이력 등등에 의해 조금 씩 차이가 있지만!

 

*부팅 버전 체크 후 해당 라인에 우리가 필요한 명령어를 넣어주면 된다

  - Read Only[ro] -> Read Write [rw] 권한 변경 & bash 쉘로 부팅 전 작업할 수 있도록 수정

[수정전] Kali 6.0 버전 부팅 시 명령어 실행라인 확인
[수정 후]

3)설정이 완료되면 - [Ctrl] + [x] 또는 F10으로 탈출 및 부팅 후 부팅 버전 선택

- 조금 전 수정한 부팅 버전 영역 -> 6.0  (참고로 본인 설정 시 아래 목록에 나와있듯 5.18 버전 부팅 시 실행 라인도 있음)

- CentOS는 최초 설치 버전만 지원하기에 아래 버전 선택 과정 없이 바로 부팅 됨.

 

부팅 버전 선택

4) CLI로 root 권한의 bash 쉘 OPEN 

- passwd [패스워드 변경]

- touch /.autorelabel [재 레이블링]

- exec /sbin/init [부팅]

  ⓛ touch /.autorelabel 입력

   - .autorelabel 파일은 SELinux 재레이블링을 트리거하는 데 사용되는 마커 파일

   - touch 명령어를 사용하여 .autorelabel 파일을 생성 시 시스템이 다음 부팅 때 SELinux 정책을 재레이블링하도록 설정

* 해당 명령어를 통해 /.autorelabel 파일을 생성하면 파일에 대한 레이블을 자동으로 부여하고 해당 파일은 삭제된다.

 

   * 보안 컨텍스트(Security Context): 리눅스 시스템에서는 SELinux 또는 AppArmor과 같은 보안 컨텍스트를 사용하여 프로세스, 파일, 디렉토리 등에 레이블을 할당하는데 이 보안 컨텍스트는 접근 권한을 결정하는 데 사용

   

② exec /sbin/init 를 통해 부팅

 - reboot이나 init6 같은 경우 init 시스템 부팅이 정상적으로 이루어지지 않은 상태 이므로 명령어 수행 불가

 

5)  변경 된 패스워드로 정상부팅

 

 

[번외] ROOT권한의 BASH쉘로 CLI모드 진입 시 발생 할 수 있는 오류

※ 패스워드 변경 시도 중 Authentication token manipulation error 발생 시,

$ mount -o remount,rw /
$ chmod 640 /etc/shadow
$ passwd