You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu环境下Django动态创建目录的权限授予方法求助

解决Ubuntu生产环境Django动态创建目录的权限问题

核心原因

运行Django的服务进程(通常是www-data用户,取决于你使用的服务器如Nginx+Gunicorn/uWSGI)没有media目录的所有权,仅修改权限位(775)不足以让进程创建子目录和写入文件。

解决命令

  1. 修改media目录的所属用户和组
    将media目录的所有者改为运行Django的用户(默认服务器进程用户多为www-data,如果是用个人用户运行Gunicorn,替换为你的用户名即可):

    sudo chown -R www-data:www-data /home/boards/alvar/media
    

    -R参数用于递归修改所有子文件和目录的权限,确保后续动态创建的子目录也能继承正确的权限。

  2. 设置合理的权限位
    给目录设置所有者读写执行、组用户读写执行、其他用户只读的权限(兼顾安全和功能):

    sudo chmod -R 755 /home/boards/alvar/media
    

    如果需要组内其他用户也能写入文件,可改用775权限:

    sudo chmod -R 775 /home/boards/alvar/media
    
  3. 验证权限设置(可选)
    切换到服务进程用户,测试能否在media下创建目录,确认权限生效:

    sudo -u www-data mkdir /home/boards/alvar/media/test_dir
    

    测试完成后删除临时目录:

    sudo rmdir /home/boards/alvar/media/test_dir
    

额外注意事项

  • 不要使用777权限,这会导致任何用户都能修改你的文件,带来严重安全风险。
  • 如果Django运行在虚拟环境中,确保虚拟环境目录也允许服务进程用户访问。

内容的提问来源于stack exchange,提问作者Alvar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 13:22:47