我正在使用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
答案 0 :(得分:2)
在ls -l
列表中,第八列的r
表示文件是世界可读的;第十列中带有x
的目录也可以被任何人访问。从您发布的内容来看,没有什么可以访问它无权访问的任何内容。
(世界可写的autoload.php
可能是危险的,如果它允许任何具有shell访问系统权限的人编写您的Web服务器将运行的任意代码。)