какой пользователь запускает php-fpm в докере или без докера? - PullRequest
1 голос
/ 15 марта 2019
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 и дает этому пользователю и группе все мои файлы и каталоги.затем устанавливает пользователя USER, который будет входить в систему. но я не знаю, как работает разрешение на «запись», поскольку папки имеют rwxr-xr-x., это означает, что php-fpm работает под www.Мы никогда не меняли, какой пользователь работает под php-fpm и как это происходит?Может кто-нибудь объяснить это мне?

1 Ответ

2 голосов
/ 15 марта 2019

Docker использует технологию изоляции, но вы все еще можете использовать ps axu и так далее, поэтому просто запустите

docker exec -it container ps axu 

и он увидит все дерево, включая раздвоенный процесс, и их владельцев.

Например, простой NGINX показывает:

PID   USER     TIME  COMMAND
1 root      0:00 nginx: master process nginx -g daemon off;
6 nginx     0:00 nginx: worker process
7 root      0:00 ps axu

Для php-fpm вы также можете grep / proc

docker exec -it container cat /proc/7/status

Это покажет

Name:   php-fpm
Uid:    33  33  33  33
Gid:    33  33  33  33

Попробуйте выполнить grep / etc / passwd

www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin

Так что это определенно www-данные с uid 33.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...