Какие учетные данные использует apache2 / mod_wsgi / python3 / flask, когда код указывает файл для записи? - PullRequest
0 голосов
/ 02 августа 2020

Этот простой фрагмент кода:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...