Этот простой фрагмент кода:
from flask import Flask, render_template, request, redirect, abort
import sys, time
import wh_settings as settings
app = Flask(__name__)
@app.route('/', methods=['POST', 'GET'])
def webhook():
if request.method == 'POST':
daily_events_fullpath = '/home/[user]/[target directory]/[filename]'
try:
with open(daily_events_fullpath, 'a') as fileobject:
fileobject.write("Hello World\n")
retval = """Hellow yellow kitty"""
except Exception as ex:
retval = str(ex)
else:
retval = """Not a 'POST'"""
return retval, 200
... приводит к:
[Errno 13] Permission denied: '/ home / [user] / [ целевой каталог] / [имя файла] '
(с заменой' [пользователь] / [целевой каталог] / [имя файла] »на допустимый материал)
Поскольку я установил ACL (и дважды проверил его с помощью «getfacl»), который позволяет «www-data» записывать в этот каталог, я думаю, что apache2 / mod_wsgi / python3 / flask должен использовать некоторые другие учетные данные для записи файла.
Может ли кто-нибудь сказать мне, как выяснить, какие учетные данные используются? Я просмотрел /var/log/auth.log, и там нет записи об отказе для попытки открыть файл для добавления.
Дополнительная информация о системе:
Opsys = Linux
Kernel ver = 5.3.0-1030-aws
distro = Ubuntu 18.04,4 LTS Server (no GUI)
SELinux is not installed
AppArmor is installed and enabled