Qu'est-ce que l'utilisateur www-data?


Réponses:


36

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. Si root est le propriétaire, un serveur Web compromis aurait accès à l’ensemble du 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’identifiant des chownnouveaux fichiers et dossiers ajoutés au site.

L' identifiant ou le nom 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-datadans la configuration Ubache de Apache2. Comme il s’agit de la configuration par défaut, vous connaissez aisément 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 n'exécute pas Nginx , mais comme il se trouve dans le référentiel Ubuntu, je suis sûr qu'il a été testé avec la www-dataconfiguration par défaut.


2
C'est génial, merci d'avoir essayé d'expliquer la situation mondiale également.
user61629

1
Au fait, qu'est-ce qu'un "identifiant spécifique"?
user61629

1
C'est www-data. C'est pourquoi, comme dans votre question, ils vous ont demandé de créer l'ID utilisateur et l'ID groupe, s'ils n'existaient pas. L'installation d'Apache2 crée automatiquement l'utilisateur. Je ne suis pas sûr de Nqinx . Vous pouvez vérifier si elle existe avec: iid -u www-data&&id -g www-data. S'il existe, il vous indiquera le numéro d'identification de l'utilisateur et du groupe. Par défaut sur Ubuntu, les numéros d'utilisateur et de groupe sont 33.
LD James

Le fait de www-datadevenir propriétaire peut également constituer un risque pour la sécurité, comme indiqué dans la base-passwddocumentation (voir la réponse de @ muru), car les propriétaires ont généralement un accès en lecture / écriture à tout le contenu diffusé sur le Web. Vous pouvez supprimer l'accès en écriture au www-datapropriétaire ou utiliser un autre propriétaire. www-dataIl faut absolument un accès en lecture à toutes les données à servir, mais si vous ne donnez que les autorisations nécessaires pour chaque fichier et chaque répertoire, pas plus, vous serez plus en sécurité.
Yuval le

18

www-dataest l'utilisateur que les serveurs Web sur 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 www-data. Cela n'a pas d'autre importance.

De la base-passwddocumentation ( /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.


3
à l'exception de la discussion sur les raisons pour lesquelles vous ne devriez pas donner accès à www-data via des fichiers webroot;)
kitingChris

1
Juste pour que ce soit plus concret, puis-je demander à quels services un serveur Web doit-il accéder lorsqu'il sert une page?
user61629

2
@ services utilisateur61629? Le serveur Web est lui-même un service, selon les définitions habituelles du service.
Muru

1
@kitingChris oui, je cherchais juste la base-passwddocumentation pour ça
muru

1
www-dataest l'utilisateur (et aussi le groupe) avec lequel le service httpd (apache) agit sur votre système.
kitingChris
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.