我正在设置一个在基于 Debian 9.3 的 Docker 容器中运行的 Web 服务器,并且我正在尝试配置 tmp 文件夹,但我无法获取 www-data 在其中创建文件。
tmp 和所有子目录均由 www-data:www-data 所有,并尝试将所有内容设置为 777,但无济于事。我已以 www-data 身份登录,以确保无法创建文件。我没有安装 SELinux。如果文件已经存在 www-data 写入它没有问题。
www-data@8c22a401af40:/srv/www/is/app/tmp/cache/persistent$ ls -lah
total 16K
drwxrwxrwx 2 www-data www-data 4.0K Jan 31 21:37 .
drwxrwxrwx 20 www-data www-data 4.0K Jan 31 21:37 ..
-rwxrwxrwx 1 www-data www-data 2.8K Jan 31 19:08 myapp_cake_core_file_map
-rw-r--r-- 1 www-data www-data 7 Jan 31 21:38 test
www-data@8c22a401af40:/srv/www/is/app/tmp/cache/persistent$ touch test2
touch: cannot touch 'test2': Permission denied
编辑:我忘了提及它,但我还设置了 777 并将所有父文件夹的所有权更改为 www-data 。
编辑2:输出root@8c22a401af40:/# getfacl -R /srv/www/
:
# file: srv/www//is/app/tmp
# owner: www-data
# group: www-data
user::rwx
group::rwx
other::rwx
所有 1271 个文件的输出都是相同的。
另外,在获得此输出时,我意识到我无法在家重现此问题。可以肯定的是,我在工作时通过 ssh 连接到我的机器,并从头开始重建容器,然后再次尝试并得到相同的结果。该机器运行 Debian 9,我的笔记本电脑运行 Mac OS 10.12。
Edit3:我在另一台运行 Debian 9 的机器上尝试过,但再次无法重现。我现在怀疑问题出在主机而不是我的 Docker 镜像上。