python makedirs权限被拒绝

2024-09-27 05:23:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个apachehttpd服务器,使用django框架和mod_wsgi运行python代码。 我的视图.py我需要调用一个子进程来执行另一个python文件,该文件在进程中需要创建一些目录。在

但是,我得到了OSERROR 13:权限被拒绝,无论我试图在哪里创建目录。在

只有在/tmp中创建目录才成功。在

有人能指导我如何解决这个问题吗?在

提前谢谢!!!在

编辑: 我在中找到了答案服务器故障.com. 这里是供参考的 apache2在根目录下运行,但它将运行在“www data”组下的进程分叉。 所以创建一个你想要创建文件/目录的目录

sudo mkdir /srv/www/writable

更改组

^{pr2}$

授予组写访问权限

sudo chmod g+w /srv/www/writable

你就完蛋了。现在您可以使用apache2运行的脚本在这个目录中创建任何文件/目录


Tags: 文件django服务器目录框架mod权限wsgi
2条回答

可能值得补充的是,这也可以在Python中实现

import os
import pwd

path = '/var/www/myapp/foo/'
if not os.path.exists(path):
        os.makedirs(path) # creates with default perms 0777
        uid, gid =  pwd.getpwnam('root').pw_uid, pwd.getpwnam('www-data').pw_uid
        os.chown(path, uid, gid) # set user:group as root:www-data

我在中找到了答案服务器故障.com. 这里是供参考的

apache2在根目录下运行,但它将运行在“www data”组下的进程分叉。所以创建一个你想要创建文件/目录的目录

sudo mkdir/srv/www/writable 更改组

sudo chgrp www-data/srv/www/writable 授予组写访问权限

sudo chmod g+w/srv/www/writable 你就完蛋了。现在您可以使用apache2运行的脚本在这个目录中创建任何文件/目录

相关问题 更多 >

    热门问题