Sto lavorando su Come servire le applicazioni Django con uWSGI e Nginx su Ubuntu 16.04 . Alla fine del "Crea un file di unità systemd per uWSGI" nell'articolo discutono l' www-data
utente. Cos'è questo e perché è importante?
Sto lavorando su Come servire le applicazioni Django con uWSGI e Nginx su Ubuntu 16.04 . Alla fine del "Crea un file di unità systemd per uWSGI" nell'articolo discutono l' www-data
utente. Cos'è questo e perché è importante?
Risposte:
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 chown
per 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-data
nella 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-data
configurazione come predefinita.
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
.
www-data
come proprietario può anche essere un rischio per la sicurezza, come indicato nella base-passwd
documentazione (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-data
proprietario o utilizzare un altro proprietario. www-data
ha 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.
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-data
può accedere. Non ha altra importanza.
Dalla base-passwd
documentazione ( /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.
base-passwd
documenti per quello
www-data
è l'utente (e anche il gruppo) con cui il servizio httpd (apache) agisce sul proprio sistema.