Cos'è l'utente www-data?


Risposte:


36

Per sicurezza.

I file non sono scrivibili dal mondo. Sono limitati al proprietario dei file per la scrittura.

Il server Web deve essere eseguito con un utente specifico. Quell'utente deve esistere.

Se fosse eseguito sotto root, tutti i file dovrebbero essere accessibili da root e l'utente dovrebbe essere root per accedere ai file. Poiché root è il proprietario, un server Web compromesso avrebbe accesso all'intero sistema. Specificando un ID specifico, un server Web compromesso avrebbe accesso completo ai suoi file e non all'intero server.

Se decidi di eseguirlo con un ID utente diverso, quell'utente dovrebbe essere il proprietario effettivo dei file per i privilegi adeguati. Potrebbe essere confuso avere la proprietà personale di file a livello di sistema sul tuo account personale.

La creazione di un utente specifico faciliterebbe il riconoscimento dei file e la coerenza nel riconoscere l'ID chownper i nuovi file e cartelle aggiunti al sito.

L' ID utente o il nome del proprietario non ha importanza. Qualunque cosa venga scelta o decisa, dovrà essere configurata nei file di configurazione del server web.

Per impostazione predefinita, la configurazione del proprietario è www-datanella configurazione Ubuntu di Apache2. Poiché questa è la configurazione predefinita, conosci comodamente la proprietà necessaria per i tuoi file web. Se lo cambi, dovresti cambiare i file nel tuo sito in modo che corrispondano.

Non eseguo Nginx , ma dal momento che si trova nel repository Ubuntu, sono sicuro che è stato testato con la www-dataconfigurazione come predefinita.


2
È fantastico, grazie per aver cercato di spiegare anche il quadro globale.
user61629

1
a proposito, che cos'è un "ID specifico"?
user61629,

1
Lo è www-data. Ecco perché, come nella tua domanda, ti hanno chiesto di creare userID e groupID se non esiste. L'installazione di Apache2 crea automaticamente l'utente. Non sono sicuro di Nqinx . È possibile controllare per vedere se esiste con: iid -u www-data&&id -g www-data. Se esiste, ti mostrerà il numero ID dell'utente e del gruppo. Di default su Ubuntu sono i numeri utente e gruppo 33.
LD James

Inserirlo www-datacome proprietario può anche essere un rischio per la sicurezza, come indicato nella base-passwddocumentazione (vedere la risposta di @ muru), poiché i proprietari in genere hanno accesso in lettura / scrittura a tutto il contenuto del servizio web. È possibile rimuovere l'accesso in scrittura al www-dataproprietario o utilizzare un altro proprietario. www-dataha sicuramente bisogno dell'accesso in lettura a tutti i dati da fornire, ma se si danno solo le autorizzazioni necessarie per ciascun file e directory, e non di più, si sarà più sicuri.
Yuval

18

www-dataè l'utente che i server Web su Ubuntu (Apache, nginx, ad esempio) usano per impostazione predefinita per il normale funzionamento. Il processo del server Web può accedere a qualsiasi file a cui www-datapuò accedere. Non ha altra importanza.

Dalla base-passwddocumentazione ( /usr/share/doc/base-passwd/users-and-groups.txt.gz):

Alcuni server Web funzionano come dati www. Il contenuto Web non deve essere di proprietà di questo utente o un server Web compromesso sarebbe in grado di riscrivere un sito Web. I dati scritti dai server Web saranno di proprietà di www-data.


3
tranne la discussione sul perché non dovresti dare l'accesso ai dati www tramite i file webroot;)
kitingChris

1
Solo per rendere questo più concreto per me, posso chiedere a quali servizi deve accedere un server Web quando serve una pagina?
user61629

2
@servizi user61629? Il web server è esso stesso un servizio, secondo le normali definizioni di servizio.
Muru,

1
@kitingChris sì, stavo solo cercando i base-passwddocumenti per quello
muru

1
www-dataè l'utente (e anche il gruppo) con cui il servizio httpd (apache) agisce sul proprio sistema.
kitingChris
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.