Apache-2.2
Apache 獲得文件和文件夾的所有權
我在 Ubuntu 上執行 django 站點,其中 apache2 配置了 mod_wsgi。(使用者上傳文件所在的
media
文件夾)歸 ubuntu 使用者(具有 sudo 訪問權限)所有,media
文件夾組為www-data
. 當 apache 在 media 文件夾中創建新文件夾或文件時,某些外部 Python 程序(例如subprocess.popen
)無法寫入該文件夾,因為該特定文件夾歸www-data
. 這個問題的解決方案是什麼?到目前為止我所做的(
django
是系統使用者):sudo chown django:django -R mysite/media/ sudo chgrp -R www-data mysite/media/ sudo chmod -R g+w mysite/media/
ls -la
文件夾的結果media
(媒體文件夾包含一些其他以整數命名的文件夾):drwxr-sr-x 2 www-data www-data 4096 Jun 8 02:20 11 drwxrwsr-x 6 django www-data 4096 Jun 7 18:15 10 drwxrwsr-x 5 django www-data 4096 Jun 7 18:13 9 drwxrwsr-x 5 django www-data 4096 Jun 7 18:11 8
如您所見,新創建的文件夾不
11
歸使用者所有。www-data``django
我還嘗試了什麼:
- 我試圖將使用者添加
django
到www-data
組,但沒有任何幫助請幫忙!
更新
不幸的是
Daniel
,解決方案對我也不起作用(仍然得到IOError: [Errno 13] Permission denied
)。這是命令的結果getfacl mysite/site_media/
:前
# file: mysite/site_media/ # owner: django # group: www-data user::rwx group::rwx other::r-x
(
sudo setfacl -d -R -m g:www-data:rwx mysite/site_media/
)之後# file: mysite/site_media/ # owner: django # group: www-data user::rwx group::rwx other::r-x default:user::rwx default:group::rwx default:group:www-data:rwx default:mask::rwx default:other::r-x
您可以使用文件訪問控制列表,在這種情況下
setfacl
設置預設文件權限以允許組的寫入操作。如果您已將 django 添加到 www-data 組,則使用以下命令,django 使用者將對 www-data 使用者擁有的任何文件具有寫入權限。setfacl -d -R -m g:www-data:rwx mysite/media/
注意:如果未安裝,則需要使用安裝
acl
包。apt-get install acl
確保還為您的分區啟用了 ACL -此連結可能會有所幫助。