-
LINUX 응급복구모드를 통해 ROOT 패스워드 변경 하는 방법System of Infra/Linux System 2022. 3. 13. 21:49반응형
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 계정 생성/변경/삭제하는 방법
2021.07.23 - [System of Infra/LINUX] - LINUX Locale 언어 변경하는 방법
PS. 포스팅의 내용은 제 기준으로 작성한 것이기 때문에 참고해서 보시면 감사하겠습니다.
포스팅 과정의 오류 및 오타 그리고 궁금한 점에 대해서는 댓글 남겨주세요.
반응형'System of Infra > Linux System' 카테고리의 다른 글
LINUX DISK 추가를 통한 파티션 생성하는 방법(2편) (2) 2022.03.23 LINUX DISK 추가를 통한 파티션 생성하는 방법(1편) (2) 2022.03.21 LINUX RPM package를 활용한 MC 설치하는 방법 (0) 2022.03.08 LINUX 소유권/허가권 부여 및 심볼릭링크 설정하는 방법 (2) 2022.03.08 LINUX 계정 생성/변경/삭제 하는 방법 (0) 2022.03.02