Salta al contenuto principale
Sistemi Attivi
WP Planet — WordPress Cloud & Managed Services
Torna al MagazineSicurezza

File permission WordPress: i permessi corretti per wp-config.php e wp-content

05 Nov 2026 — 09:30 7 min di lettura
File permission WordPress: i permessi corretti per wp-config.php e wp-content

Permessi 777 su wp-config.php, cartelle scrivibili da chiunque, file di configurazione leggibili dal mondo: li vediamo quasi ogni settimana. Come impostare i permessi giusti senza rompere il sito.

Lo vediamo quasi ogni settimana, appena apriamo l'accesso SSH a un sito nuovo che ci arriva in gestione. Cartelle wp-content con permessi 777, wp-config.php leggibile da chiunque passi di lì, uploads scrivibili dal mondo intero. Chi lo ha fatto, quasi sempre, voleva solo far funzionare un plugin o risolvere un errore di scrittura. Ha funzionato. Ha anche aperto una porta che resta aperta finché qualcuno non la chiude.

Il problema non è teorico. Un malware che riesce a scrivere dentro wp-content non ha bisogno di exploit sofisticati se la cartella è 777: può creare il file che vuole, dove vuole, e nasconderci una web shell. I permessi sono il primo strato di difesa, prima ancora del WAF e del firewall applicativo. E sono il più trascurato.

I permessi corretti: file, cartelle, wp-config

La regola base è semplice e vale su quasi ogni hosting Linux con Apache o Nginx. I file devono essere 644 (leggibili da tutti, scrivibili solo dal proprietario). Le cartelle devono essere 755 (eseguibili e leggibili da tutti, scrivibili solo dal proprietario). wp-config.php è l'eccezione: 600 o 640, mai 644, perché contiene le credenziali del database e non deve essere leggibile da altri utenti sullo stesso server.

Terminale
# Permesso corretti per un'installazione WordPress standard
# Dalla root del sito (dove c'è wp-config.php)

# Tutti i file a 644
find . -type f -exec chmod 644 {} \;

# Tutte le cartelle a 755
find . -type d -exec chmod 755 {} \;

# wp-config.php più restrittivo: 640 (o 600)
chmod 640 wp-config.php

# .htaccess a 644 (deve essere leggibile da Apache)
chmod 644 .htaccess
Nota: Esegui sempre dalla root dell'installazione WordPress. Se il server usa un utente diverso da quello del web server (www-data su Debian/Ubuntu, apache su RHEL), assicurati che il proprietario dei file coincida con l'utente del processo web, altrimenti WordPress non potrà scrivere negli upload.

Il proprietario dei file: il dettaglio che confonde tutti

I permessi numerici (644, 755) sono solo metà della storia. L'altra metà è il proprietario. Se i file sono di proprietà di root ma il processo Apache gira come www-data, WordPress non potrà aggiornare plugin, caricare immagini o scrivere nella cache — anche con i permessi corretti. Il sintomo classico è l'errore 'Impossibile creare la directory' durante un upload, o il plugin di sicurezza che segnala wp-content come non scrivibile.

La soluzione è cambiare il proprietario, non allentare i permessi. Mai usare 777 per risolvere un problema di proprietà: è come togliere la serratura perché la chiave non gira.

Terminale
# Cambia il proprietario dei file all'utente del web server
# Debian/Ubuntu: www-data
sudo chown -R www-data:www-data /var/www/html/miosito/

# RHEL/CentOS/AlmaLinux: apache
sudo chown -R apache:apache /var/www/html/miosito/

# Verifica che il proprietario sia corretto
ls -la /var/www/html/miosito/wp-config.php
# Output atteso: -rw-r----- 1 www-data www-data ... wp-config.php
Nota: Se l'hosting è gestito e non hai accesso root, il proprietario è già configurato dal provider. Su hosting condiviso i permessi 777 sono spesso l'unica via per scrivere, ed è esattamente il motivo per cui un hosting dedicato o gestito è più sicuro: il problema dei permessi non esiste quando ogni sito gira con il suo utente.

La cartella uploads: 755 non 777

wp-content/uploads è la cartella più problematica perché WordPress deve poterci scrivere (immagini, PDF, allegati). Molti la impostano a 777 per stare tranquilli. È un errore: 755 è sufficiente se il proprietario è corretto. La differenza tra 755 e 777 è che con 777 ogni utente sul server può scrivere nella cartella — incluso, su un hosting condiviso, ogni altro cliente del provider.

Se un plugin ti dice che la cartella non è scrivibile e ti consiglia 777, prima verifica il proprietario. Nove volte su dieci il problema è quello, non i permessi.

Verificare i permessi da WP-CLI

Se hai WP-CLI installato, puoi verificare lo stato dei permessi e dell'owner direttamente da terminale, senza dover navigare a mano:

Terminale
# Verifica i permessi delle cartelle critiche
wp eval 'echo substr(sprintf("%o", fileperms(ABSPATH)), -4) . PHP_EOL;'
wp eval 'echo substr(sprintf("%o", fileperms(WP_CONTENT_DIR)), -4) . PHP_EOL;'
wp eval 'echo substr(sprintf("%o", fileperms(WP_CONTENT_DIR . "/uploads")), -4) . PHP_EOL;'

# Verifica il proprietario del processo PHP
wp eval 'echo posix_getpwuid(posix_geteuid())["name"] . PHP_EOL;'
Nota: Il primo comando restituisce i permessi della root, di wp-content e di uploads. Se vedi 777 da qualche parte, è il momento di correggerlo. L'ultimo comando ti dice con quale utente gira PHP — dovrebbe coincidere con il proprietario dei file.

I permensi non sono un dettaglio da sistem administrator. Sono la differenza tra un sito che un attaccante può compromettere in pochi minuti e uno che gli rende la vita difficile. Un hardening completo passa di lì prima ancora che dal WAF. Chiudere la porta più evidente, prima di preoccuparsi della serratura smart.

Audit di sicurezza

Verifica i permessi del tuo WordPress prima che diventino un'entrata.

Un audit di sicurezza controlla file permission, configurazione, plugin vulnerabili e punti di ingresso. I permessi sbagliati sono il primo segnale che il sito è esposto.

Audit di sicurezza
Condividi