aio-libs / aio-libs/aiohttp

UNIX socket permission bits

Aperta
#4,155 13 commenti 3 reazioni 0 assegnatari Vedi su GitHub
enhancement
Lingua principale
Python
Stelle
16.5k
Fork
2.4k
Merge medio
17h 22m
PR unite (30g)
212

Descrizione

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? :)

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.