gpt4 book ai didi

linux - 如何为给定 Linux 文件夹中的所有文件提供 777 默认权限

转载 作者:太空宇宙 更新时间:2023-11-04 12:20:41 25 4
gpt4 key购买 nike

我需要使在特定 Linux 目录中创建的任何文件都具有 777 权限。

我希望所有用户都能够对该文件夹下的所有文件进行读取、写入和执行。那么实现它的最佳方法或 Linux 命令是什么?

我正在做的是分离两个单独的容器,一个用于 Nginx 服务器,一个用于 PHP:FPM 应用服务器以托管 Laravel 5.4 应用。

请考虑以下场景。我有一个 docker 应用程序容器 A (PHP:FPM),用于将 Web 应用程序文件提供给 docker 容器 B (Nginx)。现在,当我访问该网站时,我正在通过 Web 容器传送网页。这两个容器都在同一个网络中,我将应用程序容器中的卷共享到 Web 容器中。但是当 Web 容器尝试读取应用程序容器上的文件时,我收到如下错误:

The stream or file "/var/www/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied

所以我在我的 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)上运行时……权限问题开始出现。

那么我该如何解决这个问题呢?

最佳答案

解决方案是使用由相同 uid 标识的相同用户启动两个容器。例如,您可以在运行容器时选择 root 或任何 uid:

docker run --user root ...

或者,您可以在启动之前切换到另一个用户,在您的 Dockerfile 中通过在 CMD 或 ENTRYPOINT 之前添加以下内容

USER root

关于linux - 如何为给定 Linux 文件夹中的所有文件提供 777 默认权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46103723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com