현상
/etc 디렉터리의 퍼미션이 600으로 변경되어 /etc/sudoer 파일 접근이 안되어서 root로 권한 상승을 할 수 없는 문제
해결방안
/etc에는 OS의 전반적 서비스 및 기본 설정을 포함하고 있는 중요 디렉터리입니다. /etc 디렉터리가 600로 되면 다른 프로세스(예, sudo)들이 이 디렉터리에 대한 접근 권한이 상실되어(실행권한(x)이 없는 상태) 서비스의 이상 현상이 발생할 수 있습니다.
사용자 데이터 스크립트((User Data Script)를 통하여 부팅시 cloud-init 프로세스를 통해 수행되도록하여 /etc 디렉터리 퍼미션을 변경하여 해결할 수 있습니다.
해당 절차는 다음과 같습니다.
Amazon EC2 Console(https://console.aws.amazon.com/ec2/ ) 을 여신 후 이슈가 발생한 인스턴스를 선택합니다.
상단 "인스턴스 상태(Instance state)" 버튼을 클릭한 후 "인스턴스 중지(Stop Instance)"로 인스턴스를 중지시킵니다.
"작업(Actions)" 버튼을 클릭한 후 "인스턴스 설정" > "사용자 데이터 편집"을 선택하여 편집 화면이 나타나게 합니다.
다음 내용을 "새 사용자 데이터(New user data)" 하위 텍스트 박스에 넣어주고 "저장(Save) 버튼으로 반영을 해줍니다.
==내용 시작== Content-Type: multipart/mixed; boundary="//" MIME-Version: 1.0 --// Content-Type: text/cloud-config; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="cloud-config.txt" #cloud-config cloud_final_modules: [scripts-user, always] --// Content-Type: text/x-shellscript; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="userdata.txt" #!/bin/bash PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin: chmod 755 /etc --// ==내용 끝==
다시 상단 "인스턴스 상태(Instance state)" 버튼을 클릭한 후 "인스턴스 시작(Start Instance)"로 인스턴스를 시작시킵니다.
인스턴스 시작 후 접속하셔서 확인하신 후 정상 동작된다면 다시 반복하셔서 해당 사용자 데이터를 삭제해줍니다.
참고자료
Why am I unable to run sudo commands on my EC2 Linux instance?
https://aws.amazon.com/premiumsupport/knowledge-center/ec2-sudo-commands/