【发布时间】:2019-08-06 17:15:33
【问题描述】:
RUN groupadd -g 1000 www
RUN useradd -u 1000 -ms /bin/bash -g www www
COPY . /var/www
COPY --chown=www:www . /var/www
USER www
在 dockerfile 中,我得到了这个。
我的问题是:如何检查哪个用户在 php-fpm 容器下运行?在 nginx 中,如果我想找到它,我检查 /etc/nginx/nginx.conf 文件,那里写着用户。但对于 php-fpm 我无法弄清楚。 我怎么知道?不要告诉我使用 whoami 或类似的东西,因为这是当前登录的用户。
我在上面向您展示的命令(我不知道它是怎么做的),但它会创建 www 用户和 www 组,并将此用户和组提供给我的所有文件和目录。然后设置将登录的用户。但我不知道“写”权限是如何工作的,因为文件夹有rwxr-xr-x.,这意味着 php-fpm 在 www 下运行。我们从未更改过哪个用户在 php-fpm 下运行,它是如何发生的?谁能给我解释一下?
【问题讨论】:
-
我希望进程以 1000 的 uid 运行,并且容器相信用户名为
www,遵循 Dockerfile 说明。有理由相信这不会发生吗? -
问题是 php-fpm 以 www 用户身份运行 php 脚本。因为我更改了文件夹的权限,并且在我更改前 3 位后它就停止工作(它是 rwx,我设置了 ---)。对于其他人我设置(rwx)。如果它运行的是 www 以外的其他用户,它仍然可以工作。所以 php-fpm 在 www 下运行。但我不知道这是怎么回事。我们什么时候把它改成在 www 下运行还是默认来自 php-fpm docker image?
标签: php linux docker nginx permissions