问题:
我有一个Django
应用程序,db查询写入/tmp/db.log
文件。
"debug_console_to_file": {
"level": "DEBUG",
"filters": ["require_debug_true"],
"class": "logging.FileHandler",
"filename": "/tmp/db.log",
},
有时我通过(使用python manage.py
)手动运行它。
问题是,当我试图启动它时,由于/tmp/db.log
文件已经由www-data
用户创建,我得到一个权限拒绝错误(删除文件可以临时修复问题,但服务器将收到相同的错误,因为现在有用户拥有该文件)。
PermissionError: [Errno 13] Permission denied: '/tmp/db.log'
我试图将用户添加到www-data
组
$ members www-data
www-data tvelichkov
我还试图给777
文件权限。
$ ls -l /tmp/db.log
-rwxrwsrwx 1 www-data www-data 22102 юли 30 15:25 /tmp/db.log
仍然得到Permission denied
错误。
$ ls -l / | grep tmp
drwxrwxrwx 24 root root 4096 авг 3 10:19 tmp
答案1:
看来您已将特定的用户ID设置为文件的组所有权。你需要关闭用户id,并在文件所有权中设置组id。
sudo chmod g-s www-data /tmp/db.log
答案2:
在这种情况下,最好以www-data
用户身份执行脚本。
sudo -u www-data python manage.py
相关文章