Docker Nginx工作进程以非root用户身份运行,但仍可以访问root拥有的文件

时间:2018-10-18 23:57:38

标签: linux docker nginx drupal permissions

我正在使用docker nginx官方映像https://github.com/nginxinc/docker-nginx/blob/master/stable/alpine/Dockerfile。我像# A sentinel object to detect if a parameter is supplied or not. Use # a class to give it a better repr. class _MISSING_TYPE: pass MISSING = _MISSING_TYPE()

一样运行

网络是我的文档根目录。当我进入docker exec -it -v drupal:/var/www/drupal/web/var/www/drupal/web时,我看到文件许可如下。一切均由root拥有,而 nginx worker进程由非root用户nginx 拥有。但是当转到localhost:80时,我可以访问我的网站。这怎么可能 ? Nginx用户如何访问root拥有的文件?有安全性问题吗?

ls -al

Nginx容器过程如下:

-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

1 个答案:

答案 0 :(得分:2)

ls -l列表中,第八列的r表示文件是世界可读的;第十列中带有x的目录也可以被任何人访问。从您发布的内容来看,没有什么可以访问它无权访问的任何内容。

(世界可写的autoload.php可能是危险的,如果它允许任何具有shell访问系统权限的人编写您的Web服务器将运行的任意代码。)