GNU/Linux >> Linux Esercitazione >  >> Linux

Con quale utente dovrebbero essere eseguiti NGinx e PHP?

Soluzione 1:

Ecco come funziona:quando accedi tramite FTP/SSH e carichi i file, questi vengono creati con i tuoi permessi. PHP viene eseguito con diversi privilegi utente (sono specificati nella configurazione PHP-FPM, non nella configurazione nginx) e poiché la directory è scrivibile in tutto il mondo, anche l'utente PHP (www-data) può scrivere lì. Ma il proprietario di questo file è www-data, non il tuo account. Sono 2 account distinti nel livello di autorizzazione del filesystem.

Ti suggerisco di creare un utente dedicato con i privilegi minimi possibili, che possiederebbe la directory webroot e verrebbe utilizzato per il caricamento FTP/SSH E eseguirà php. Dovresti cambiare la configurazione PHP-FPM, nella sezione lavoratore ci sono voci utente e configurazione NGINX, così puoi rendere i file del tuo sito web non leggibili da tutti e più sicuri.

Non eseguire PHP con utenti privilegiati (capacità sudo, privilegi di scrittura fuori da docroot), che potrebbero compromettere la sicurezza del server.

Soluzione 2:

Il www-data utente e gruppo sono abbastanza standard. Potrebbe essere www o web su altri sistemi, ma l'idea è la stessa:esegui i servizi Web con un account dedicato. Pertanto, quando il tuo server Web viene compromesso, l'attaccante sarà in grado di accedere solo ai file a cui è stato concesso questo account .

Se un utente deve gestire i servizi Web, è necessario aggiungere l'utente al gruppo pertinente (www-data) o consentirgli di eseguire su (o sudo) all'utente pertinente (sempre www-data).


Linux
  1. Che cos'è un utente Linux?

  2. Temi sonori in Linux:cosa dovrebbe sapere ogni utente

  3. Che cos'è il kernel Linux e dovresti aggiornare al kernel più recente?

  4. Installazione e configurazione di Php e Nginx su Ubuntu 20.04

  5. Ottenere il tempo dell'utente e del kernel di un processo in esecuzione?

Che cos'è l'UID in Linux, come trovarlo e modificarlo

Che cos'è un Homelab e perché dovresti averne uno?

Come installare Nginx, MySQL e PHP (LEMP) su un server Ubuntu 15.04

Con quale utente devono essere eseguiti apache e PHP? Quali autorizzazioni devono avere i file /var/www?

Qual è la differenza tra spazio utente e spazio kernel?

Individuare e aggiornatob non funziona. Cosa dovrei fare?