사용자로서 AWS EC2 서버를 중지할 수 있어야 합니다. 내가 찾은https://www.cyberciti.biz/tips/howto-linux-allow-users-to-shutdown-server.html하지만 AWS EC2 인스턴스에서 이것을 사용해야 하기 때문에 정적 호스트 이름이 없으므로 다음을 시도합니다.
ubuntu ALL=(ALL:ALL) ALL=/sbin/halt /sbin/reboot
그러나 이것은 나에게 다음을 제공합니다:
>>> /etc/sudoers: syntax error near line 21 <<<
What now?
Options are:
(e)dit sudoers file again
e(x)it without saving changes to sudoers file
(Q)uit and save changes to sudoers file (DANGER!)
이 문제를 어떻게 올바르게 해결할 수 있습니까?
답변1
나는 당신이 찾고 있다고 생각합니다:
ubuntu ALL=/sbin/halt, /sbin/reboot
이는 다음과 같습니다.
ubuntu ALL=(ALL:ALL) /sbin/halt, /sbin/reboot
일반적으로 파일을 최종 위치에 배치하기 전에 파일에 대한 구문 검사를 수행하므로 항상 구성을 visudo
편집 해야 합니다.sudoers
sudoers(5)
긴 로깅 예제 목록을 포함한 전체 문서는 매뉴얼 페이지를 참조하세요 .
질문이 "이 상황에서 어떻게 복구합니까?"이고 직접 로그인할 수 없는 경우 root
가장 좋은 옵션은 EC2 인스턴스를 삭제하고 새 인스턴스를 생성하는 것입니다.
답변2
당신이 사용하는 경우AWS CLI사용자는 인스턴스 자체에서 다음 작업을 수행할 수 있습니다.
aws ec2 reboot-instances --instance-ids $(curl -s http://instance-data/latest/meta-data/instance-id)
이것 좀 봐논의하다인스턴스 자체에서 EC2 ID를 가져옵니다.
실행하기 전에 필요한 권한이 있는지 테스트하려면 다음 --dry-run
플래그를 포함해 보세요.
--dry-run | --no-dry-run(부울)
실제로 요청하지 않고도 작업에 필요한 권한이 있는지 확인하고 오류 응답을 제공합니다. 필요한 권한이 있는 경우 오류 응답은 DryRunOperation입니다. 그렇지 않으면 UnauthorizedOperation입니다.
맥락은 이것을 참조하십시오논의하다halt
shutdown
, 등 reboot
의 차이점 에 대해