我需要能够以用户身份停止 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!)
我怎样才能正确解决这个问题?
我想你正在寻找:
这等同于:
通常,您应该始终使用
visudo
来编辑您的sudoers
配置,因为它在将文件放置到最终位置之前会对文件执行语法检查。有关完整文档,请参阅
sudoers(5)
手册页,包括一长串文档示例。如果您的问题是“我如何从这种情况中恢复”,如果您无法直接以 身份登录
root
,那么您最好的选择可能是删除 EC2 实例并创建一个新实例。如果您使用的是AWS CLI,作为用户,您可以(在实例本身上)执行以下操作:
aws ec2 reboot-instances --instance-ids $(curl -s http://instance-data/latest/meta-data/instance-id)
请参阅有关从实例本身获取 EC2 ID 的讨论。
如果您想在运行前测试您是否具有所需的权限,请尝试包含以下
--dry-run
标志:有关上下文,请参阅有关、、等之间区别的讨论。
halt
shutdown
reboot