Рабочий процесс Docker Nginx запускается от имени пользователя без полномочий root, но все еще может обращаться к файлу, принадлежащему пользователю root - PullRequest
0 голосов
/ 19 октября 2018

Я использую официальное изображение docker nginx https://github.com/nginxinc/docker-nginx/blob/master/stable/alpine/Dockerfile.Я запускаю его так: docker exec -it -v drupal:/var/www/drupal/web

web - это мой корень документа.Когда я перехожу на /var/www/drupal/web и ls -al, я вижу, что права доступа к файлам такие, как показано ниже.Все принадлежит пользователю root, в то время как рабочий процесс nginx принадлежит nginx , не являющемуся пользователем root.Но когда я перехожу на localhost: 80, я могу получить доступ к своему веб-сайту.Как это возможно ?Как пользователь nginx может получить доступ к файлам, принадлежащим пользователю root?Есть ли проблемы с безопасностью?

-rw-r--r--    1 root     root          1025 Oct 18 23:39 .csslintrc
-rw-r--r--    1 root     root           357 Oct 18 23:39 .editorconfig
-rw-r--r--    1 root     root           151 Oct 18 23:39 .eslintignore
-rw-r--r--    1 root     root            41 Oct 18 23:39 .eslintrc.json
-rw-r--r--    1 root     root          3858 Oct 18 23:39 .gitattributes
-rw-r--r--    1 root     root          2314 Oct 18 23:39 .ht.router.php
-rw-r--r--    1 root     root          7866 Oct 18 23:39 .htaccess
-rw-rw-rw-    1 root     root           385 Oct 18 23:39 autoload.php
drwxr-xr-x   44 root     root          1408 Oct 18 23:38 core
-rw-r--r--    1 root     root           549 Oct 18 23:39 index.php
drwxr-xr-x    3 root     root            96 Oct 18 23:39 modules
drwxr-xr-x    3 root     root            96 Oct 18 23:39 profiles
-rw-r--r--    1 root     root          1594 Oct 18 23:39 robots.txt
drwxr-xr-x    6 root     root           192 Oct 18 23:39 sites
drwxr-xr-x    3 root     root            96 Oct 18 23:39 themes
-rw-r--r--    1 root     root           848 Oct 18 23:39 update.php
-rw-r--r--    1 root     root          4555 Oct 18 23:39 web.config

Процесс контейнера Nginx приведен ниже:

17     1 nginx    S    14344   1%   0   0% nginx: worker process
 1     0 root     S    13896   1%   0   0% nginx: master process

1 Ответ

0 голосов
/ 19 октября 2018

В списке ls -l, r в восьмом столбце означает, что файл доступен для чтения всем;каталоги с x в десятом столбце также могут быть доступны любому.Из того, что вы опубликовали, ничто не имеет доступа к контенту, на который он не имеет права.

(Доступный для записи autoload.php, вероятно, опасен, если он позволяет любому, кто имеет оболочку, получить доступ к системе.написать произвольный код, который будет запускать ваш веб-сервер.)

...