Django+Nginx部署中用户上传媒体文件权限拒绝问题求助
解决Wagtail媒体文件Permission Denied问题
核心问题分析
你的场景中,静态文件正常但媒体文件权限拒绝,关键在于媒体目录/文件的组归属及权限继承,结合Gunicorn(用户hvn、组www-data)和Nginx(默认以www-data用户运行)的运行身份,以下是具体排查和解决步骤:
1. 检查媒体目录的所有者与组归属
运行命令查看媒体目录的权限信息:
ls -ld /path/to/your/media
- 若目录的组不是
www-data,执行以下命令修改归属:
sudo chown -R hvn:www-data /path/to/your/media
2. 确认hvn用户属于www-data组
运行命令检查用户组:
groups hvn
- 若输出中没有
www-data,将用户加入组并重启Gunicorn:
sudo usermod -aG www-data hvn sudo systemctl restart gunicorn
3. 确保新上传文件自动继承目录组权限
设置媒体目录的setgid位,让后续上传的文件自动继承目录的www-data组:
sudo chmod g+s /path/to/your/media
4. 修复已上传文件的组权限
对于之前上传的文件,批量修改其组归属为www-data:
sudo chgrp -R www-data /path/to/your/media/*
内容的提问来源于stack exchange,提问作者HzM74
相关产品推荐
相关产品推荐

