사용자로서 서버를 중지/다시 시작하는 기능

사용자로서 서버를 중지/다시 시작하는 기능

사용자로서 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입니다.

맥락은 이것을 참조하십시오논의하다haltshutdown, 등 reboot의 차이점 에 대해

관련 정보