CentOS/RHEL 7에서 비밀번호 재설정 프로세스가 어떻게 작동하는지 정확히 이해하려고 노력하고 있지만 몇 가지 기본 사항이 누락되었습니다.
존재하다일부 다른 예나는 이것이 chroot /sysroot
필요하다고 생각하지만, 이 단계가 정확히 왜 또는 무엇을 하는지 이해하지 못합니다. 표현 예:
- (출처 A) “5 – 이제 이 명령을 사용하여 시스템에 액세스하세요.”
- (소스 B) "붐. 단일 사용자 모드에 있습니다. 쉘 프롬프트! -- 다음과 같습니다: /#
type chroot /sysroot" - (소스 C) "그런 다음 chroot를 사용하여 chroot 감옥에 들어갑니다."
틀림없이 이러한 프로세스에 대한 설명은 약간 부족합니다. :-( 누군가 자세히 설명해 주시겠습니까?
답변1
손실된 프로그램을 재설정하는 것에 대해 이야기하고 있습니다.뿌리비밀번호. 이는 루트 비밀번호를 분실한 경우에만 필요합니다.그리고sudo
루트 액세스나 이와 유사한 액세스 권한이 없습니다 .
시작 시 부트 로더(일반적으로 GRUB)는 커널과 initramfs(initrd라고도 함) 파일이라는 2개의 파일을 로드합니다. initramfs 파일에는 실제 루트 파일 시스템, 해당 디스크 컨트롤러 및 이를 활성화하는 데 필요한 기타 기능(예: LVM, 디스크 암호화, 다중 경로 지정 및/또는 소프트웨어 RAID)을 활성화하는 데 필요한 도구 및 커널 모듈이 포함된 최소 파일 시스템이 포함되어 있습니다. ).
부팅 rd.break
옵션은 시스템이 여전히 initramfs를 사용하고 있지만 실제 루트 파일 시스템이 이미 마운트되어 있는 동안 부팅 순서를 중지하도록 지시합니다 /sysroot
. 일반적으로 다음 단계는 ivot_root 작업을 수행하고 /sysroot
실제 루트 파일 시스템으로 전환하고 거기에서 콘텐츠를 실행하는 것입니다. 를 누른 다음 메모리에서 initramfs를 삭제합니다.
initramfs에서 중지하면 비상 쉘에 액세스할 수 있습니다. 그러나 initramfs에 사용할 수 있는 명령 수는 매우 제한되어 있으며 /etc/passwd
전체 initramfs가 어쨌든 실제 루트 파일 시스템으로 대체되므로 initramfs 파일을 편집해도 아무런 효과가 없습니다.
루트 파일 시스템은 처음에 파일 시스템 검사를 허용하기 위해 읽기 전용 모드로 마운트됩니다. 첫 번째 단계는 비밀번호 변경을 허용하기 위해 읽기-쓰기 모드로 다시 설치하는 것입니다.
이 명령은 다음을 의미합니다: " 디렉토리가 로 표시되는 chroot /sysroot
새 쉘을 시작합니다 ." 해당 chroot된 쉘에서 실제 루트 파일 시스템의 실제 비밀번호 파일을 참조하며 시스템 이 정상적으로 실행될 때 사용되는 것과 동일합니다. 명령은 동일합니다. 이 chrooted 쉘은 비상 쉘에서 시작되므로 이미 전체 루트 액세스 권한을 갖고 있으며 이 명령을 사용하면 새 루트 비밀번호 설정을 포함하여 이전 비밀번호를 먼저 묻지 않고도 누구에게나 새 비밀번호를 설정할 수 있습니다./sysroot
/
/etc/passwd
/etc/shadow
/bin/passwd
passwd
프로세스가 완료되면 첫 번째 exit
명령은 chrooted 쉘을 종료하고 실제 루트 파일 시스템을 처리하는 초기 비상 쉘로 돌아갑니다 /sysroot
. 두 번째 exit
명령은 비상 쉘이 사용될 때마다 시작 스크립트로 제어를 반환합니다 . 일반적으로 다시 시작됩니다.
이게 필요한 설명인가요?
답변2
단일 사용자 모드에서 파일 시스템은 /sysroot
읽기 전용(기본값) 또는 읽기-쓰기 모드 ro
( rw init=/sysroot/bin/sh
.
이제 루트 비밀번호를 재설정하기 전에 사용할 루트 파일 시스템을 변경해야 합니다 /sysroot
.chroot /sysroot
이것은이에 대한 공식 RedHAT 문서입니다.