【问题标题】:Permission Denied when writing log file写入日志文件时权限被拒绝
【发布时间】:2013-08-31 11:54:22
【问题描述】:

我使用的是 ubuntu 13.04。我正在使用 sudo service uwsgi start 运行 uwsgi

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

但我收到了这个错误 -

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

我该如何解决?当我以 sudo 运行 uwsgi 时,这不应该发生。

【问题讨论】:

    标签: django ubuntu uwsgi


    【解决方案1】:

    您需要使用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-表示文件所有者可读写,组可读写,其他人可读。您必须确保该文件的所有者是尝试向其写入内容的服务,或者该文件属于该服务的组,否则您将收到 permission denied 错误。

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

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

    【讨论】:

    • 谢谢。实际上 uwsgi 进程在“www-data”用户下运行。我用 chown 更改了用户,它起作用了。无论如何,我将日志文件位置移动到 var 并给了 chmod 775 和 chown www-data:www-data 并且正在工作。再次感谢。
    【解决方案2】:

    或者,您可以为 uwsgi (http://uwsgi-docs.readthedocs.org/en/latest/Options.html#umask) 设置 umask 选项。

    我有同样的情况,我通过 www-data 运行 uwsgi,我使用了 buildout。所以在我的情况下这个修复看起来像这样:

    [uwsgi]
    recipe = buildout.recipe.uwsgi
    xml-socket = /tmp/uwsgi.sock
    xml-master = True
    xml-chmod-socket = 666
    xml-umask = 0002
    xml-workers = 3
    xml-env = ...
    xml-wsgi-file = ...
    

    此日志文件权限变为664后,www-data组的组员也可以写入。

    【讨论】:

      猜你喜欢
      • 2015-08-02
      • 2013-03-19
      • 2018-02-20
      • 2023-04-07
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 2018-09-14
      • 2015-11-24
      相关资源
      最近更新 更多