Skip to content

Quando si lavora su WordPress in self-hosting auto gestito come Vultr o Digital Ocean, la macchina virtuale viene fornita con i soli accessi SSH per utente root. Una cosa corretta da fare subito è creare gli accessi utente con permessi specifici e dedicati, usare l’utente root per l’ordinaria amministrazione non è una buona pratica.

Usare Ubuntu ed imparare qualche comando da sistemista mi ha aiutato ad impostare e gestire il mio hosting cloud Digital Ocean, dove risiede questo sito ormai da diverso tempo. Ora sono indipendente da piattaforme di hosting condivisi che hanno moltissimi limiti e spesso sono poco performanti. Il bello poi è divertirsi a testare configurazioni al fine di ottenere un web server sempre più veloce e stabile.

Nota: se ti interessa approfondire ho un corso da web master dove ti mostro come configurare, ottimizzare e gestire server LEMP (Linux-Ubuntu + Nginx + MySQL + PHP-FPM).

Con questo post ti mostro come correggere i problemi di autorizzazione quando si utilizzano utenti SFTP con Nginx e PHP-FPM 7.0.

Crea un nuovo utente SFTP

Crea un nuovo ftpuser con assegnata la cartella /var/www:
sudo useradd -d /var/www/ ftpuser
Imposta la password per ftpuser. Attento, quando ti viene richiesta la password non vedrai i caratteri mentre scrivi!
sudo passwd ftpuser


I file non sono scrivibili da tutti gli utenti, sono limitati al proprietario dei file. Il web server deve essere eseguito con un utente specifico. Quell’utente deve esistere. Se fosse eseguito in root, tutti i file dovrebbero essere accessibili da root e l’utente dovrebbe essere root per accedere ai file. Essendo il proprietario root, un web server compromesso avrebbe accesso all’intero sistema. Assegnando un user specifico, un web server compromesso avrà solo pieno accesso ai suoi file e non all’intero server.

Di default su Ubuntu con Nginx o Apache la proprietà dei file è assegnata all’user www-data. Poiché si tratta della configurazione predefinita, è possibile conoscere in modo appropriato la proprietà necessaria per i propri file Web. Se cambi user, dovresti cambiare i file nel tuo sito per farlo combaciare.

Aggiungi ftpuser al www-data group:
sudo usermod -aG www-data ftpuser
Il tuo nuovo utente ftp è ora membro del gruppo giusto e ha la cartella home corretta.

Cambia utente Nginx

Apri la tua configurazione di Nginx:
sudo nano /etc/nginx/nginx.conf

Cambia il valore dell’utente sul tuo ftpuser:
user ftpuser;
worker_processes auto;
pid /run/nginx.pid;

Verifica che la sintassi della nuova configurazione Nginx sia corretta:
sudo Nginx -t

Dovresti ricevere questi messaggi di conferma:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ora Nginx verrà eseguito come utente ftp.

Cambia utente PHP-FPM

Apri la tua configurazione PHP-FPM:
sudo nano /etc/php/7.0/fpm/pool.d/www.conf

Cambia il valore dell’utente ftpuser:
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
user = ftpuser
group = www-data

Verifica la sintassi della nuova configurazione PHP-FPM:
sudo php-fpm7.0 -t
Dovresti vedere questo messaggio di successo:
[12-Jun-2018 01:02:21] NOTICE: configuration file /etc/php/7.0/fpm/php-fpm.conf test is successful
Ora PHP-FPM è configurato per funzionare come ftpuser.

Correggere i permessi FTP

Cambia in modo ricorsivo le autorizzazioni per la cartella principale di ftpuser:
sudo chown -R ftpuser:www-data /var/www
In alternativa usa
sudo chown -R www-data:www-data /var/www
Imposta il permesso 775 per le cartelle in modo che il gruppo ftpuser e www-data possano eseguire i file nelle cartelle:
sudo find /var/www/ -type d -exec chmod 775 {} +
Imposta il permesso 664 per i file in modo che il gruppo ftpuser e www-data possano modificarli:
sudo find /var/www/ -type f -exec chmod 664 {} +
Cambia i permessi per la cartella /var/lib/nginx:
sudo chown -R ftpuser:www-data /var/lib/nginx
Modifica anche le autorizzazioni della cartella dei log:
sudo chown -R ftpuser:www-data /var/log/nginx
Modifica le autorizzazioni delle sessioni PHP:
sudo chown -R ftpuser:www-data /var/lib/php/sessions

Imposta il permesso 775 per le cartelle in modo che il gruppo ftpuser e www-data possano eseguire i file nelle cartelle:
sudo find /var/www/ -type d -exec chmod 775 {} +
Imposta il permesso 664 per i file in modo che il gruppo ftpuser e www-data possano modificarli:
sudo find /var/www/ -type f -exec chmod 664 {} +
Cambia i permessi per la cartella /var/lib/nginx:
sudo chown -R ftpuser:www-data /var/lib/nginx
Modifica anche le autorizzazioni della cartella dei log:
sudo chown -R ftpuser:www-data /var/log/nginx
Modifica le autorizzazioni delle sessioni PHP:
sudo chown -R ftpuser:www-data /var/lib/php/sessions

Per quanto riguarda i permessi è tutto, non dovrebbe servirti altro.

Finalizzare

Ora i servizi e web server devono essere riavviati. Digita nella SHELL:
sudo service php7.0-fpm restart
sudo service nginx restart
A questo punto dovresti essere in grado di caricare file via SFTP senza problemi di autorizzazione.
Se hai ancora problemi con WordPress ed FTP, prova ad aggiungerle queste righe al tuo file wp-config.php:
// permission fixes define( 'FS_METHOD', 'direct' ); define( 'FS_CHMOD_DIR', ( 0775 & ~ umask() ) ); define( 'FS_CHMOD_FILE', ( 0664 & ~ umask() ) );

Articoli correlati

21 min lettura

Ridurre i tempi di risposta del server è vitale per abbattere il TTFB e dominare metriche come LCP e INP. Workflow tecnico per aumentare la velocità dell'hosting: dalla transizione verso VPS alla configurazione avanzata dello stack LEMP per ottenere server realmente accelerati.
33 mi piace
5 min lettura

Configurazione tecnica di Certbot per Nginx su Ubuntu 22.04 e 24.04 LTS. La procedura aggiornata per installare il client Let's Encrypt via Snap, abbandonare il vecchio PPA e automatizzare i certificati SSL/TLS 1.3, inclusa la gestione dei wildcard tramite DNS challenge.
13 mi piace

Autore

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Ultimi articoli aggiornati

16 min lettura

Metodologia operativa per la diagnosi di problemi su web server Linux tramite l'analisi dei log di sistema e applicativi. Il testo dettaglia l'ispezione di /var/log, l'interrogazione dei demoni con journalctl per monitorare lo stack LEMP e la configurazione di logrotate.
0 mi piace
21 min lettura

I crawler di Meta e Amazon generano milioni di richieste senza back-off: come quantificarli nei log, verificarne l'autenticità e fermarli con cache, robots.txt, rate limiting e WAF, senza perdere i link preview.
1 mi piace
22 min lettura

Difendere WordPress dai commenti spam con una strategia defense in depth a tre layer: configurazioni applicative, regole edge su Cloudflare, barriere a livello web server. Honeypot PHP, regole .htaccess e Nginx modernizzate, Cloudflare Turnstile, fail2ban. Snippet completi pronti da incollare.
0 mi piace
22 min lettura

Analisi tecnica della persistenza dei dati nel protocollo HTTP tramite header Set-Cookie. Comprendere la meccanica dei cookie, attributi come Max-Age e i limiti di Googlebot come crawler stateless è essenziale per diagnosticare problemi di rendering e involuntary cloaking.
4 mi piace
19 min lettura

Analisi dell'architettura RAG nativa per WordPress sviluppata interamente in PHP e MySQL, senza dipendenze da database vettoriali esterni. Il sistema supera i limiti della ricerca lessicale integrando la ricerca semantica su VPS o hosting condivisi con meno di 1GB di RAM.
3 mi piace

Richiedi un preventivo SEO e Google Ads

Porta il tuo sito web al livello successivo con l’esperienza di EVE Milano. La nostra agenzia di Search Marketing ha ricevuto oltre

User Access Addon Required

This shortcode requires the CF7 Database User Access addon to display data.

Please purchase and install the User Access addon to enable this feature.

Purchase User Access Addon

richieste di preventivo, un segnale chiaro della fiducia che imprenditori e manager, come te, ripongono nella nostra specializzazione tecnica e verticale nella SEO e PPC. Se la tua organizzazione cerca competenze specifiche per emergere nei risultati di Google, noi siamo pronti a fornire quel valore aggiunto. Richiedi un preventivo ora e scopri la differenza tra noi e gli altri.
Richiedi un preventivo

Vuoi ricevere un avviso al mese con le nuove guide pubblicate?

Iscriviti alla newsletter!