ROOT 계정 비밀번호 초기화

root 계정의 패스워드를 초기화해야 하는 몇 가지 일반적인 상황은 다음과 같습니다. 

  • 패스워드를 잊은 경우
  • 보안 문제로 패스워드 변경이 필요한 경우
  • 계정이 잠긴 경우
  • 패스워드 해시 파일(/etc/passwd 또는 /etc/shadow)  손상으로 로그인이 불가능한 경우
  • 계정 관리 도구를 사용하지 못하는 경우

위와 같은 문제가 발생 했을 때 아래의 방법으로 문제를 해결 할 수 있습니다. 

 

Bourne 쉘 (sh) 에 진입 하여 초기화 하기

  1. 부팅 화면에서 ‘e’ 를 눌러 편집모드에 진입합니다.
  2. ‘linux’의 라인 마지막에 ‘rd.beak’ 을 추가합니다. (Ctrl + e 입력 시 줄의 맨 끝으로 이동)
  3. Ctrl + x 명령어로 재부팅 후 switch_root 로 접속합니다.

    mount 명령어를 통해 /sysroot 에 쓰기 권한을 추가합니다.

    # mount와 grep명령어를 사용하여 /sysroot의 권한을 확인합니다 (ro=Read Only).
    mount | grep -w /sysroot
    /dev/mapper/cs-root on /sysroot type xfs (ro,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota)
    
    # mount명령어로 w(쓰기) 권한 추가하기
    mount -o rw,remount /sysroot
    
    # 다시 확인 해보면 ro -> rw로 변경된 것을 확인할 수 있습니다.
    mount | grep -w /sysroot
    /dev/mapper/cs-root on /sysroot type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota)

     

  4. 패스워드 변경 후 재부팅 하기
    # 현재 프로세스의 루트 디렉토리를 '/sysroot'로 변경 (sh-5.1#로 프롬포트 변경됨)
    chroot /sysroot
    
    # passwd를 변경하는 명령어이다. successfully는 성공적으로 변경되었다는 메시지이다.  
    passwd
    
    # touch 명령어로 'autorelabel'라는 이름의 숨긴 파일 생성
    # 'autorelabel' 파일을 생성을 하지 않으면 변경된 내용이 저장이 되지 않거나 접속이 안될 수 있습니다.
    touch /.autorelabel

     

    exit 명령어 또는 Ctrl + d 단축기 2번으로 쉘에서 나와 재부팅을 합니다.

    재부팅이 끝나면 성공적으로 패스워드가 변경되었음을 확인할 수 있습니다. 

 

bash 쉘에 진입 하여 초기화 하기

  1. 위와 똑같은 방법으로 부팅 화면에서 ‘e’ 를 눌러 편집모드에 진입합니다.
  2. 편집모드 상태에서 ro -> rwrhgb quiet -> init=/bin/bash 수정합니다.
  3. Ctrl + x 명령어를 눌러 쉘 모드로 부팅합니다.
    # 위에서 했던 방법과 같이 touch 명령어로 'autorelabel' 파일 생성
    touch /.autorelabel
    
    # passwd 명령어로 비밀번호를 변경
    passwd
    
    # exec 명령어로 재부팅을 합니다.
    exec /sbin/init

    재부팅이 끝나고 나면 패스워드가 변경된 것을 확인할 수 있습니다.