Quel user devrait exécuter le process du gunicorn?

Lors de l'exécution d'une application Django sur un server Debian, devriez-vous créer une sorte d'user de l'application (p. Ex. «Myappuser») et exécuter le process gunicorn en tant qu'user ou peut / devrait-il être utilisé comme root? L'exécuter comme root crée-t-il un risque de security? J'ai installé gunicorn en utilisant APT plutôt que de l'installer dans un environnement virtuel. L'exécution en tant qu'user d'application semble rendre la configuration plus difficile car vous devez donner à cet user l'autorisation d'écrire sur les files journaux, le file PID, etc. Il semble plus facile de l'exécuter en tant que root.

exec gunicorn $DJANGO_WSGI_MODULE:application \ --name myapp \ --user=$USER \ # <- who should this be? --group=$GROUP \ 

En règle générale, c'est toujours une bonne idée de faire fonctionner les travailleurs et ce genre de chose sous un autre user qui ne reçoit expressément que les permissions nécessaires pour s'exécuter. Le fait d'exécuter des choses en tant que root est généralement plus simple car vous avez rarement à vous soucier des problèmes d'permissions, mais il est toujours less sécurisé car tout ce qui peut exploiter avec succès votre application aura un access racine immédiat à votre système plutôt que de find un moyen de progresser davantage. Même s'il n'y a pas d'exploitation délibérée, si l'application est catastrophiquement incorrecte, il pourrait en résulter des éléments importants de votre système de files. Mangez la balle et faites face à la légère complexité de faffing avec les permissions maintenant plutôt que d'accepter le risque de security de l'exécution en tant que root. Dans certains cas, il peut être approprié de réutiliser un autre user qui existe déjà (par exemple, www-data pour les travaux pour un webapp), si cela facilite les choses.