【问题标题】:How do I change file permissions on /tmp during and elastic beanstalk app deploy?如何在弹性 beantalk 应用部署期间更改 /tmp 的文件权限?
【发布时间】:2020-10-19 05:17:08
【问题描述】:

我有一个在 Amazon linux 2 AMI 上运行 tomcat8.5 的弹性 beanstalk webapp。我的 webapp 通过 chromedriver 启动一个无头 chrome 图像来执行一些功能。无病 chrome 进程需要能够写入 /tmp 以在启动时解压一些东西,如果它不能写入 /tmp 则失败。在我尝试使用的 .ebextensions 中

 535_permission:
    command: sudo chmod 777 /tmp

根据我的 cfn-init-cmd.log 执行得很好。但是,我是否确实在 /tmp 上执行了 ls -al,它的默认权限为

drwxr-xr-x 10 ec2-user root      334 Oct 18 10:54 .

如果我手动发出命令,它会起作用。我不明白为什么这些命令在 eb config 中运行正常,但在我手动检查文件系统时却没有应用。我不确定 /tmp 是否在 ebextensions 运行后被重置,也许我需要稍后以某种方式运行它。

【问题讨论】:

  • 通常,应用程序可以写入 /tmp。您的应用程序是否被拒绝访问?
  • 是的。如果我将 /tmp 的权限更改为 777 或者如果我执行 sudo chorn tomcat:tomcat /tmp 那么它工作正常。
  • 535_permission 是在commands 还是container_commands?我会尝试重现。
  • 它在命令中:
  • 非常感谢您的关注。我有一些与 /tmp perms 混淆的旧代码,我以为我已经删除了。在我的辩护中,我在 5 年前写了那个片段并忘记了它在那里。当我删除它时,它的行为与您描述的一样。

标签: amazon-web-services amazon-elastic-beanstalk amazon-ami


【解决方案1】:

基于 cmets。

默认情况下,EB 环境中的/tmp 具有权限 777(即drwxrwxrwt)。随后,所有应用程序都可以对其进行写入,并且通常不需要更改。

但是,OP 的问题是由于使用了正在更改权限的旧代码版本,因此新代码无法使用/tmp

解决方案是删除旧代码。

【讨论】:

    猜你喜欢
    • 2015-05-11
    • 2013-08-16
    • 2016-04-25
    • 2018-03-26
    • 2017-12-18
    • 2019-04-14
    • 1970-01-01
    • 2017-08-21
    • 2016-01-11
    相关资源
    最近更新 更多