我有一个需要在我的EC2实例上的some%26code%26%26
下运行的cron作业,它需要能够写入我的Web应用程序的标准日志文件。但是,日志文件归ec2-user
所有(按照正常情况)。
我已成功更改了日志文件的权限,以便所有者和组webapp
都可以访问它们。但是,当我尝试将webapp:webapp
添加到ec2-user
组时,我遇到了麻烦。
我可以使用webapp
在SSH中做得很好但是当我尝试通过EB 容器命令添加此命令时,我收到错误消息sudo usermod -a -G webapp ec2-user
。在没有sudo的情况下运行命令会给我you must have a tty to run sudo
。
任何人都知道有任何其他方法可以通过Elastic Beanstalk部署配置将/bin/sh: usermod: command not found
添加到ec2-user
组。
答案 0 :(得分:6)
不确定sudoers文件的问题,但通常更简洁的方法将用户添加到组(而不是手动执行命令)是使用users
文件的.ebextensions
部分。例如,在.ebextensions/something.config
:
users:
ec2-user:
groups:
- webapp
答案 1 :(得分:0)
您不应该使用sudo,部署脚本由root运行。
此外,这是一个服务器命令,在命令部分而不是容器命令部分执行。
commands:
01_set_user_role:
command: "usermod -a -G webapp ec2-user"
答案 2 :(得分:0)
You need to run this command from a container_command before executing any commands with sudo:
echo Defaults:root \!requiretty >> /etc/sudoers
在上下文中(在.ebextensions / yourconf.config中)
container_commands:
001-enableroot:
command: echo Defaults:root \!requiretty >> /etc/sudoers #disables error related to needing a tty for sudo, allows running without cli