Je travaille à travers Comment servir Django Applications avec uWSGI et Nginx sur Ubuntu 16.04 . À la fin de la section "Créer un fichier d'unité systemd pour uWSGI" dans l'article, ils discutent de l'utilisateur www-data
. Qu'est-ce que c'est et pourquoi est-ce important?
Pour la sécurité.
Les fichiers ne sont pas inscriptibles. Ils sont limités au propriétaire des fichiers pour l'écriture.
Le serveur Web doit être exécuté sous un utilisateur spécifique. Cet utilisateur doit exister.
S'il était exécuté sous root, tous les fichiers devraient être accessibles par root et l'utilisateur devrait être root pour pouvoir accéder aux fichiers. root étant le propriétaire, un serveur Web compromis aurait accès à l'intégralité de votre système. En spécifiant un ID spécifique, un serveur Web compromis n'aurait qu'un accès complet à ses fichiers et non à l'ensemble du serveur.
Si vous décidez de l'exécuter sous un ID utilisateur différent, cet utilisateur doit alors être le propriétaire effectif des fichiers pour obtenir les privilèges appropriés. Il peut être déroutant de posséder des fichiers appartenant à l'ensemble du système sur votre compte personnel.
La création d’un utilisateur spécifique faciliterait la reconnaissance des fichiers et la cohérence de l’identification de chown
aux nouveaux fichiers et dossiers ajoutés au site.
Le serid ou Name du propriétaire n'a pas d'importance. Tout ce qui est choisi ou décidé devra être configuré dans les fichiers de configuration du serveur Web.
Par défaut, la configuration du propriétaire est www-data
dans la configuration Ubuntu d’Apache2. Comme il s’agit de la configuration par défaut, vous connaissez facilement le propriétaire nécessaire pour vos fichiers Web. Si vous le modifiez, vous devrez modifier les fichiers de votre site afin qu'ils correspondent.
Je ne lance pas Nginx, mais comme il se trouve dans le référentiel Ubuntu, je suis sûr qu'il a été testé avec la configuration www-data
par défaut.
www-data
est l'utilisateur que les serveurs Web sous Ubuntu (Apache, nginx, par exemple) utilisent par défaut pour un fonctionnement normal. Le processus du serveur Web peut accéder à n’importe quel fichier auquel www-data
peut accéder. Cela n'a pas d'autre importance.
De la documentation base-passwd
(/usr/share/doc/base-passwd/users-and-groups.txt.gz
):
Certains serveurs Web fonctionnent en tant que www-data. Le contenu Web ne doit pas appartenir à cet utilisateur, sinon un serveur Web compromis pourrait réécrire un site Web. Les données écrites par les serveurs Web seront la propriété de www-data.