【发布时间】:2017-09-07 19:24:27
【问题描述】:
我需要使在特定 Linux 目录中创建的任何文件都具有 777 权限。
我希望所有用户都能够对该文件夹下的所有文件进行读取、写入和执行。那么实现它的最佳方式或 Linux 命令是什么?
我正在做的是分拆两个独立的容器,一个用于 Nginx 服务器,一个用于 PHP:FPM 应用服务器,以托管 Laravel 5.4 应用。
请考虑以下情况。我有一个 docker 应用程序容器 A (PHP:FPM),用于将 Web 应用程序文件提供给 docker 容器 B (Nginx)。现在,当我访问网站时,我正在通过 Web 容器传递网页。这两个容器都在同一个网络中,我将我的应用程序容器中的卷共享到我的 Web 容器中。但是,当 Web 容器尝试读取应用程序容器上的文件时,我收到如下错误:
流或文件“/var/www/storage/logs/laravel.log”不能 已打开:无法打开流:权限被拒绝
所以我在我的 docker 文件中添加了RUN chmod -R 777 storage。
但是,它并没有解决问题。
所以我还尝试使用 SGID 通过在我的 dockerfile 中添加一行作为RUN chmod -R ug+rwxs storage 来解决此问题。它仍然没有解决许可问题。
另外,有趣的是,在我的 MAC Docker 容器上,这没有任何问题(我的意思是没有将 chmod -R 777 添加到文件夹或使用 SGID 设置对我的 docker 文件中文件夹的权限)。但是,当在 Linux AMI EC2 实例 (Amazon AMI Linux EC2) 上运行相同的代码时……权限问题开始出现。
那么我该如何解决这个问题?
【问题讨论】:
-
你可以使用
setfacl
标签: linux bash docker dockerfile amazon-ami