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).