当我运行程序并尝试创建文件时,我收到以下错误:
IOError: [Errno 13] Permission denied: '/home/giri26/couponmonk_project/user_15_qr.png'
我使用supervisor
运行我的程序,这是config
文件:
[program:gunicorn-couponmonk]
directory = /home/giri26/couponmonk_project
command = /home/giri26/venv/py2.7/bin/python /home/giri26/venv/py2.7/bin/gunicorn --worker-class socketio.sgunicorn.GeventSocketIOWorker __init__:app
stdout_logfile = /var/log/gunicorn/couponmonk-std.log
stderr_logfile = /var/log/gunicorn/couponmonk-err.log
user = newuser
我认为此error
指的是permissions
newuser
,因此我将newuser
添加到group
giri26
。
运行groups newuser
会导致:
newuser : giri26
ls -ld couponmonk_project/
的结果是:
drwxrwxr-x 3 giri26 giri26 4096 Jun 27 22:34 couponmonk_project/
我认为由于newuser
是小组giri26
的一部分且group
拥有rwx
权限,因此我可以write
和{ {1}}文件夹中的{1}}文件。
我正确地看着这个吗?
感谢您的帮助。
注意
上面的文件夹包含以下create
:
couponmonk_project
这可能需要改变吗?
更新
如下所述,我使用permissions
运行drwxr-xr-x 10 giri26 giri26 4096 Jun 27 22:52 ../
,但strace
未包含curl
的任何实例。 output
文件中有400多行,因此无法在此处发布。还有什么我可能会注意的吗? ATM,我无法真正说出相关内容。
这些行显得很多:
EACESS
这也出现在输出结尾:
output
答案 0 :(得分:0)
gunicorn配置文件中的行
user = newuser
似乎确实是核心问题。正如
所示$ id
uid=1001(msw) gid=1001(msw) groups=1001(msw),4(adm),8(mail) …
用户有一个uid和一个gid。列出的所有其他组都是您所属的组,但不是您的gid。要更改gid,您必须明确要求将其切换为:
$ newgrp mail
$ id
uid=1001(msw) gid=8(mail) groups=1001(msw),4(adm),8(mail) …
确实将我的gid更改为我的其他组之一。不幸的是,newuser现在可能看起来像:
$ id
uid=22(newuser) gid=22(newuser) groups=22(newuser), 455(giri26) …
由于newuser可能永远不会登录到shell,甚至没有密码,因此没有好地方可以运行newgrp。
要修复它,你应该通过修改/etc/passwd
newuser:x:22:22: …
变为:
newuser:x:22:455: …
这可能对newuser的其他文件和目录产生影响,要小心。
答案 1 :(得分:0)
您应该在更改文件权限后尝试重新启动实际计算机。
如果在远程服务器上运行此命令,请通过Web主机控制面板发出命令以重新启动实际计算机。
这应该有希望解决这个问题。