Apache-2.2

Apache 獲得文件和文件夾的所有權

  • June 11, 2013

我在 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

我還嘗試了什麼:

  • 我試圖將使用者添加djangowww-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 -此連結可能會有所幫助

引用自:https://serverfault.com/questions/514278