Amazon Linux 2에 대해 들어 보셨을 것입니다. Amazon에서 개발한 AWS 운영 체제입니다. 무료로 제공되며 테스트용 가상 머신 어플라이언스도 받을 수 있습니다. 이 주제에 대한 기사에서 보여드린 것처럼 제가 한 일입니다.
테스트 중에 부딪힌 걸림돌은 로그인이었습니다. 일반적으로 SSH를 사용하여 EC2 인스턴스에 로그인합니다. 그러나 기본적으로 오프라인인 가상 머신에 무엇을 사용합니까? 온라인에서 root/ec2-user 콤보를 찾을 수 없었고 단일 모드에서 암호를 변경하려는 일반적인 방법이 작동하지 않았습니다. 따라서 이 가이드. 테스트를 시작할 수 있도록 Amazon Linux 2 가상 머신의 로그인 자격 증명을 수동으로 변경하는 방법을 보여줍니다. 내 뒤에.
로그인 프롬프트
음, 이미지를 다운로드하십시오. 신병. 로그인. 지금은?
단일 모드
오랜 Linux 사용자는 트릭을 기억할 것입니다. 시스템을 단일 모드로 강제 전환하고 루트를 쓰기 가능으로 다시 마운트하고 암호를 변경하고 재부팅하십시오. 우리 모두는 이것을 여러 번 해왔습니다. 아아, 더 이상 불가능합니다.
부팅 메뉴의 부팅 옵션에 init=/bin/bash를 추가하려고 했고 시스템에 커널 패닉이 발생했습니다. 이것이 커널에 있는 것인지, Amazon Linux가 영광스러운 systemd를 사용한다는 사실 또는 다른 것인지 확실하지 않지만 오래되고 입증된 방법은 도움이 되지 않았습니다.
새로운 것이 없는 백만 개의 bin-bash 항목을 제외하고 온라인에서 RHEL 버전 7의 암호를 변경하는 방법에 대한 자세한 기사를 찾았습니다. 이 자습서에서는 RHEL 6에서 RHEL 7로 전환하는 보다 철학적인 개념도 언급합니다. , 그리고 이것이 RHCSA 시험의 일부라는 사실. 내 말은? 단순함은 어디로 갔습니까?
어쨌든 장황하게 말씀드리지만 기사에서 언급한 것처럼 커널 라인에 rd.break를 추가하면 도움이 될 수 있으며 Amazon Linux 2는 RHEL을 기반으로 하므로 그렇게 해보자고 생각했습니다. 다만 아무것도 하지 않았다. Amazon Linux가 정상적으로 부팅되었습니다. 이 역시 원하는 결과를 얻지 못했습니다.
Amazon에는 이를 수행하는 방법을 설명하는 매우 짧고 모호한 구절이 있습니다. 그들은 cloud-init 구성 ISO를 만들어야 한다고 말한 다음 가상화 플랫폼 설명서를 참조하도록 합니다. 그다지 도움이 되지 않습니다.
수동으로 VDI 마운트
우리는 과거에 이것에 대해 이야기했습니다. 파일 시스템 내용을 편집할 수 있도록 가상 머신 디스크와 파티션을 루프백 장치로 마운트하는 방법을 보여 주었습니다. 우리는 partx를 사용하여 KVM 머신을 복제했습니다. 여기에서도 동일한 작업을 수행하고 가상 머신 이미지 파일 시스템을 마운트하고 표시하는 또 다른 방법을 보여드리겠습니다.
유사한 트릭을 수행하는 qemu-nbd 도구가 필요합니다. 이 유틸리티는 대부분의 배포판에서 qemu-kvm 패키지의 일부로 제공되므로 설치해야 합니다. 그런 다음 도구를 사용하십시오. 실행에 실패하면 nbd(네트워크 블록 장치) 모듈을 메모리에 수동으로 로드해야 할 수 있습니다. 따라서 일련의 명령(sudo 또는 root)은 다음과 같습니다.
<패키지 관리자> qemu-kvm 설치
modprobe nbd
qemu-nbd -c /dev/nbd0 <가상 머신 vdi 하드 디스크 이름>
Amazon Linux 2 vdi 이미지 다운로드를 찾아 위의 명령에 매핑합니다. 특별히 /dev/nbd0을 사용할 필요는 없으며 아무 번호나 사용할 수 있지만 순차적으로 작업하는 것이 더 쉽고 깔끔합니다.
블록 장치가 매핑되면 /dev/nbd0p*에서 해당 파티션을 찾을 수 있습니다. 숫자는 p1, p2 등의 실제 하드 디스크 파티션 레이아웃과 일치합니다. 다시 말하지만 이것은 partx에서 수행한 것과 거의 동일합니다. 다음 단계는 원하는 파티션을 어딘가에 마운트하는 것입니다.
마운트 /dev/nbd0pX /마운트포인트
이 명령을 완료하면 이제 Amazon Linux 2 vdi 파일 시스템(파티션)의 콘텐츠가 원하는 마운트 지점(예:/mnt) 아래에 노출되어 조작할 수 있습니다.
/etc/shadow 파일 편집
이제 암호를 변경하고 싶습니다. 이를 수행하는 방법은 다음과 같습니다. 실제로 가상 머신을 실행하는 네이티브 Linux에서 새 사용자를 만듭니다. 원하는대로 부를 수 있습니다. 아마존이라고합시다. 비밀번호를 만드세요. /etc/shadow 파일을 엽니다. 암호가 암호화되어 두 개의 콜론 구분 기호 사이에 긴 해시로 표시된다는 것을 알 수 있습니다. 엄청난. 이것이 우리에게 필요한 것입니다. 다음과 같습니다:
아마존:$123456$데도이메도:11111:0:99999:6:::
이제 이전의 Amazon Linux 2 파일 시스템 마운트 지점(예:/mnt)으로 이동하고 텍스트 편집기에서 해당 섀도우 파일을 엽니다.
<텍스트 편집기> /mnt/etc/shadow
기본 사용자는 실제로 ec2-user라고 합니다. 당신이 이것을 몰랐더라도 지금 당신은 알고 있습니다. 암호에 대한 해시도 있습니다. 나는 그것이 무엇인지 전혀 모르고 중요하지 않습니다. 해시를 로컬 Amazon 사용자의 해시로 바꿉니다. 파일을 저장하고 vdi를 마운트 해제합니다.
재부팅, 로그인, 작업 및 즐기기
가상 머신을 다시 시작하십시오. 로그인 프롬프트가 표시되면 방금 설정한 올바른 사용자 이름과 암호로 자신을 올바르게 식별하십시오. 이제 로그인되었으며 가상 머신 어플라이언스 작업을 시작할 수 있습니다. 이제 우리는 Amazon Linux로 해냈지만 이 트릭은 모든 Linux 배포판과 파일 시스템에 적용됩니다. 시스템 유지 관리를 정상적으로 실행할 수 없는 경우 이 트릭을 사용하여 제한을 피하고 파일 시스템에 필요한 변경을 수행할 수 있습니다. 이것은 가상 머신에 매우 유용합니다. 우리는 KVM과 VirtualBox로 이 작업을 수행했습니다.
결론
Amazon Linux 2를 테스트하고 싶지만 로그인 자격 증명 문제가 발생하고 자체 ISO 이미지를 생성하고 싶지 않거나 EC2 항목을 사용하는 완전하고 적절한 방법을 파악하려는 경우 다음을 사용할 수 있습니다. partx 또는 qemu-nbd를 사용하여 가상 하드 디스크를 마운트하고 섀도우 파일을 수동으로 편집합니다. 이것은 단일 모드나 복구 모드로 부팅하거나 잘리지 않는 경우를 대비한 보장된 해결 방법입니다.
Amazon Linux 2는 다소 흥미로운 기능이 있는 재미있는 운영 체제처럼 보이며 초기 로그인/암호와 같은 기술/관료적 엉터리 때문에 놓친다는 것은 부끄러운 일입니다. which distro와 같이 기본 세트가 없어야 할 이유가 없습니다. 또한 init=/bin/bash에 대한 Linux 인프라의 일반적인 변경 사항은 확실히 도움이 되지 않습니다. 바라건대, 이 기사가 여정을 시작하는 데 필요한 기술적 노하우와 모험적인 자극을 제공하기를 바랍니다. 무엇보다도 분산에 구애받지 않습니다. 어떤 가상 머신 어플라이언스, 어떤 파일 시스템이든 테스트에 필요한 변경을 할 수 있습니다. 즐거운 시간 되세요.
건배.