django – 写入日志文件时的权限被拒绝

前端之家收集整理的这篇文章主要介绍了django – 写入日志文件时的权限被拒绝前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用ubuntu 13.04.我运行uwsgi使用sudo服务uwsgi启动

我已将django中的日志文件配置为/home/shwetanka/logs/mysite/mysite.log

但是我收到这个错误

ValueError: Unable to configure handler 'file': [Errno 13] Permission denied: '/home/shwetanka/logs/mysite/mysite.log'

如何解决?当我运行uwsgi作为sudo时,这不应该发生.

解决方法

您需要使用chmod命令修复权限,如下所示:chmod 775 /home/shwetanka/logs/mysite/mysite.log.

使用ls -l /home/shwetanka/logs/mysite/mysite.log查看文件的所有者,并将其写入uwsgi.如果该文件不是由uwsgi所有,则必须使用chown命令.

请查看使用ps aux |运行服务的用户名grep’uwsgi’.

如果安全性对你来说不是很重要,那么请使用chmod 777 /home/shwetanka/logs/mysite/mysite.log,就是这样.但这不是这样做的方式.

最安全的方法是检查所有者和文件组,然后根据需要更改它们,并相应地调整权限.

举一个例子.

如果我在/home/shwetanka/logs/mysite/mysite.log中有一个文件,并且命令ls -l /home/shwetanka/logs/mysite/mysite.log给出以下输出

-rw-rw-r-- 1 shwetanka shwetanka 1089 Aug 26 18:15 /home/shwetanka/logs/mysite/mysite.log

这意味着该文件的所有者是shwetanka,该组织也是shwetanka.现在我们来读rwx位.第一组与文件所有者有关,所以rw-表示该文件由所有者可读写,由该组可读写.您必须确保文件的所有者是试图向其写入某项内容的服务,或者该文件属于服务组,否则您将获得拒绝的权限错误.

现在如果我有USWGI服务使用的用户名uwsgi,并希望上述文件可以被该服务写入,我必须更改文件的所有者,如下所示:

chown uwsgi /home/shwetanka/logs/mysite/mysite.log.由于所有者(第一个rwx组)的写入位已经设置为1,所以该文件现在可以由UWSGI服务写入.如有任何其他问题,请发表评论.

猜你在找的Python相关文章