aio-libs / aio-libs/aiohttp

UNIX socket permission bits

Offen
#4,155 13 Kommentare 3 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
enhancement
Vorherrschende Sprache
Python
Sterne
16.5k
Forks
2.4k
Ø Merge
17 Std. 22 Min.
Gemergte PRs (30 T.)
212

Beschreibung

I want to use a unix socket, but it's impossible when umask is 0022 or more strict, because the nginx `www-data` user can't connect and prints "Permission denied" error. I want to change the permission bits for the unix socket without touching umask (a strict umask is needed for other things of my project).

There was a PR https://github.com/aio-libs/aiohttp/pull/4002, but it's closed.

I tried to chmod after `on_startup` signal:

```python
class MyApp:
def __init__(self, config):
self.config = config
self.webapp = web.Application()
self.webapp.on_startup.append(self._on_startup)
# ...

def run_app(self):
web.run_app(
self.webapp,
path=self.config.unix_socket,
# ...
)

async def _on_startup(self, webapp):
os.chmod(self.config.unix_socket, self.config.unix_socket_mode)
```

But the `on_startup` signal is called *before* creating the socket, and `os.chmod` raises "No such file or directory: 'webapp.sock'" error.

Please implement an option for this or explain how to do it with the current version of aiohttp

Or maybe add `on_listen` signal? :)

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.