ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • LINUX 응급복구모드를 통해 ROOT 패스워드 변경 하는 방법
    System of Infra/Linux System 2022. 3. 13. 21:49
    반응형

    LINUX로고이미지

    LINUX 응급복구 모드를 통해 ROOT 패스워드 변경하는 방법

    #localhost login: root
    Password:
    Login incorrect
    ▶ 리눅스 시스템의 root 계정을 통해서 접속 시 패스워드 임계치 초과, 패스워드 분실을 통해서 응급복구 모드를 통해서 복구해야 합니다.(System downtime = 재부팅 필요)
    CentOS Linux (4.18.0-80.e18.x86_64) 8 (Core)
    CentOS Linux (0-rescue-2dd257ee67734d98835f159cea9208eb) 8 (Core)
    
    Use the ↑ and ↓ keys to change the selection.
    Press 'e' to edit the selected item, or 'c' for a command prompt.
    The selected entry will be started automatically in 5s.
    ▶ 재부팅을 하게 되면 'e' 단축키를 통해서 편집모드로 들어가도록 합니다.
    (변경 전)
    load_video
    set gfx_payload=keep
    insmod gzio
    linux ($root)/boot/vmlinuz-4.18.0-80.e18.x86_64 root=UUID=314207A5-5F68-405d-a787-7cd8cd8a66f6 ro crashkernel=auto resume=UUID=dad90950-01b5-4d05-b363-874805a29721 rhgb quiet	vga=773
    initrd	($root)/boot/initramfs-4.18.0-80.e18.x86_64.img $tuned_initrd
    
    (변경 후)
    load_video
    set gfx_payload=keep
    insmod gzio
    linux ($root)/boot/vmlinuz-4.18.0-80.e18.x86_64 root=UUID=314207A5-5F68-405d-a787-7cd8cd8a66f6 ro crashkernel=auto resume=UUID=dad90950-01b5-4d05-b363-874805a29721 	vga=773 init=/bin/sh
    initrd	($root)/boot/initramfs-4.18.0-80.e18.x86_64.img $tuned_initrd
    ▶ vga=773 앞에 있는 rhgb quiet의 텍스트를 삭제하고 그 뒤로 init=/bin/sh를 작성 후 ctrl+x를 통해서 부팅 모드를 빠져나오도록 합니다.
    sh-4.4#whoami
    root
    
    sh-4.4#passwd root
    Changing password for user root.
    New password:
    BAD PASSWORD: The password is shorter than 8 characters
    Retype new password:
    passwd: Authentication token manipulation error
    ▶ Prompt 모드에서 패스워드를 변경해주도록합니다. 패스워드 변경 후 Autentication token mannipulation error가 발생하게 되면 현재 디스크에 설치된 /boot의 권한을 확인해야 합니다.
    sh-4.4#mount
    ...(생략)
    cgroup on /sys/fs/cgoup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime.blkio)
    configfs on /sys/kernel/config type configfs (rw,relatime)
    /dev/sda2 on / type xfs (ro,relatime,attr2,inode64,noquota)
    
    sh-4.4#mount -o remount,rw /
    mount를 하게 되면 /dev/sda2에 대한 권한이 read/only로 되어 있기 때문에 수정을 할 수가 없어 remount를 통해서 write의 권한을 부여하도록 합니다. 이후 시스템을 재부팅하도록 합니다.
    sh-4.4#mount
    ...(생략)
    cgroup on /sys/fs/cgoup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime.blkio)
    configfs on /sys/kernel/config type configfs (rw,relatime)
    /dev/sda2 on / type xfs (rw,relatime,attr2,inode64,noquota)
    
    sh-4.4#passwd root
    Changing password for user root.
    New password:
    BAD PASSWORD: The password is shorter than 8 characters
    Retype new password:
    passwd: all authentication tokens updated successfully.
    ▶ 응급복구 모드에서 편집을 하고 확인을 하게 되면 read/only의 권한이 read/write의 권한으로 변경된 것을 확인할 수 있고 패스워드 변경 시 성공적으로 변경이 된 것을 확인할 수 있습니다.
    이후 부팅을 진행합니다. 부팅을 진행하게 되면 성공적으로 root 접속이 가능하게 됩니다.
    #localhost login: root
    Password:
    Last login: Sun Mar 13 21:31:29 on tty2
    [root@localhost ~]#
     ▶ root 패스워드 변경 후 변경된 패스워드를 통해서 접속이 된 것을 확인할 수 있습니다.
    [root@localhost ~]# vi /etc/default/grub 
    GRUB_TIMEOUT=5 -> 20(변경)
    GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
    GRUB_DEFAULT=saved
    GRUB_DISABLE_SUBMENU=true
    GRUB_TERMINAL_OUTPUT="console"
    GRUB_CMDLINE_LINUX="crashkernel=auto resume=UUID=ae9aeae5-2577-49e3-86d9-63db631bc9d8 rhgb quiet"
    GRUB_DISABLE_RECOVERY="true"
    GRUB_ENABLE_BLSCFG=true
    ▶ 해당 부팅 복구 모드를 통해서 시스템을 접속하게 되면 관리자 측면에서 재부팅을 통해 누구든지 패스워드 초기화를 통해서 변경을 할 수 있습니다. 그렇지 때문에 응급복구 모드에서 편집 자체를 할 수 있는 계정을 만들 수 있습니다.
    우선 시스템 접속 후 /etc/default/grub의 편집 모드에서 GRUB_TIMEOUT=5 -> 20(변경)로 변경을 합니다.
    [root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
    Generating grub configuration file ...
    done
    ▶ grub2-mkconfig 명령어를 통해서 변경된 config 파일을 저장합니다.
    [root@localhost ~]# cd /etc/grub.d
    [root@localhost grub.d]# ls -ltr
    -rwxr-xr-x. 1 root root  1043  7월  5  2018 00_tuned
    -rw-r--r--. 1 root root   483  6월  4  2019 README
    -rwxr-xr-x. 1 root root   216  6월  4  2019 41_custom
    -rwxr-xr-x. 1 root root   214  6월  4  2019 40_custom
    -rwxr-xr-x. 1 root root  1412  6월  4  2019 30_uefi-firmware
    -rwxr-xr-x. 1 root root 10670  6월  4  2019 30_os-prober
    -rwxr-xr-x. 1 root root  2559  6월  4  2019 20_ppc_terminfo
    -rwxr-xr-x. 1 root root 11696  6월  4  2019 20_linux_xen
    -rwxr-xr-x. 1 root root   232  6월  4  2019 01_users
    -rwxr-xr-x. 1 root root  1240  6월  4  2019 01_menu_auto_hide
    -rwxr-xr-x. 1 root root  8958  6월  4  2019 00_header
    -rwxr-xr-x. 1 root root 13414  2월 28 21:21 10_linux
    ▶ /etc/grub.d 디렉터리에 있는 00_header 파일을 수정하도록 합니다.
    [root@localhost grub.d]# vi 00_header 
    ...(생략)
    # Play an initial tune
    if [ "x${GRUB_INIT_TUNE}" != "x" ] ; then
      echo "play ${GRUB_INIT_TUNE}"
    fi
    
    if [ "x${GRUB_BADRAM}" != "x" ] ; then
      echo "badram ${GRUB_BADRAM}"
    fi
    
    (추가)
    cat << EOF
    set superusers="adminlinux"
    password adminlinux superpassword
    EOF
    ▶ /etc/grub.d/00_header에 (추가) 내용을 추가합니다. 응급복구 모드를 들어가기 위한 계정/패스워드를 생성하고 저장하도록 합니다. 
    [root@localhost grub.d]# grub2-mkconfig -o /boot/grub2/grub.cfg 
    Generating grub configuration file ...
    done
    ▶ grub2-mkconfig 명령어를 통해서 변경된 config 파일을 저장합니다.
    CentOS Linux (4.18.0-80.e18.x86_64) 8 (Core)
    CentOS Linux (0-rescue-2dd257ee67734d98835f159cea9208eb) 8 (Core)
    
    Use the ↑ and ↓ keys to change the selection.
    Press 'e' to edit the selected item, or 'c' for a command prompt.
    The selected entry will be started automatically in 20s.
    ▶ 커널 화면이 5초에서 20초로 변경된 것을 확인할 수 있고 'e'를 통해서 편집 모드로 들어가도록 합니다.
    Enter username
    adminlinux
    Enter password: ***********
    ▶ /etc/grub.d/00_header의 파일에서 수정된 adminlinux 계정과 지정한 패스워드를 입력합니다.
    load_video
    set gfx_payload=keep
    insmod gzio
    linux ($root)/boot/vmlinuz-4.18.0-80.e18.x86_64 root=UUID=314207A5-5F68-405d-a787-7cd8cd8a66f6 ro crashkernel=auto resume=UUID=dad90950-01b5-4d05-b363-874805a29721 rhgb quiet	vga=773
    initrd	($root)/boot/initramfs-4.18.0-80.e18.x86_64.img $tuned_initrd
    ▶ 해당 계정을 통해서 응급복구 모드를 접속할 수 있도록 변경된 것을 확인할 수 있습니다.

     

    2022.03.02 - [System of Infra/LINUX] - LINUX 계정 생성/변경/삭제하는 방법

     

    LINUX 계정 생성/변경/삭제 하는 방법

    LINUX 계정 생성/변경/삭제하는 방법 [root@localhost /]# cat /etc/passwd | grep -i root root:x:0:0:root:/root:/bin/bash [root@localhost /]# cat /etc/shadow | grep -i root root:$6$MJwYqEVQpPMPnQyF$..

    pinetreeday.tistory.com

    2021.07.23 - [System of Infra/LINUX] - LINUX Locale 언어 변경하는 방법

     

    LINUX Locale 언어 변경하는 방법

    LINUX Locale 언어 변경하는 방법 [root@test_svr01 /]# locale LANG=ko_KR.UTF-8 LC_CTYPE="ko_KR.UTF-8" LC_NUMERIC="ko_KR.UTF-8" LC_TIME="ko_KR.UTF-8" LC_COLLATE="ko_KR.UTF-8" LC_MONETARY="ko_KR.UTF-8"..

    pinetreeday.tistory.com

     

    PS. 포스팅의 내용은 제 기준으로 작성한 것이기 때문에 참고해서 보시면 감사하겠습니다.

    포스팅 과정의 오류 및 오타 그리고 궁금한 점에 대해서는 댓글 남겨주세요.

    반응형

    댓글

Designed by Tistory.