[EC2] The permissions of the /etc folder have been changed to 600, so it cannot be accessed by Root Account.

Print

현상

/etc 디렉터리의 퍼미션이 600으로 변경되어 /etc/sudoer 파일 접근이 안되어서 root로 권한 상승을 할 수 없는 문제

해결방안

  • /etc에는 OS의 전반적 서비스 및 기본 설정을 포함하고 있는 중요 디렉터리입니다. /etc 디렉터리가 600로 되면 다른 프로세스(예, sudo)들이 이 디렉터리에 대한 접근 권한이 상실되어(실행권한(x)이 없는 상태) 서비스의 이상 현상이 발생할 수 있습니다.

  • 사용자 데이터 스크립트((User Data Script)를 통하여 부팅시 cloud-init 프로세스를 통해 수행되도록하여 /etc  디렉터리 퍼미션을 변경하여 해결할 수 있습니다.
    해당 절차는 다음과 같습니다.

  1. Amazon EC2 Console(https://console.aws.amazon.com/ec2/ ) 을 여신 후 이슈가 발생한 인스턴스를 선택합니다.

  2. 상단 "인스턴스 상태(Instance state)" 버튼을 클릭한 후 "인스턴스 중지(Stop Instance)"로 인스턴스를 중지시킵니다.

  3. "작업(Actions)" 버튼을 클릭한 후 "인스턴스 설정" > "사용자 데이터 편집"을 선택하여 편집 화면이 나타나게 합니다.

  4. 다음 내용을 "새 사용자 데이터(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
    --//
    ==내용 끝==
  5. 다시 상단 "인스턴스 상태(Instance state)" 버튼을 클릭한 후 "인스턴스 시작(Start Instance)"로 인스턴스를 시작시킵니다.

  6. 인스턴스 시작 후 접속하셔서 확인하신 후 정상 동작된다면 다시 반복하셔서 해당 사용자 데이터를 삭제해줍니다.

Did you find it helpful? Yes No

Send feedback
Sorry we couldn't be helpful. Help us improve this article with your feedback.