Quando si gestisce un sito WordPress, è fondamentale garantire che i permessi dei file e delle directory siano impostati correttamente per mantenere la sicurezza e la funzionalità del sito. Una configurazione errata può esporre il sito a potenziali attacchi, mentre permessi troppo restrittivi possono impedire al sito di funzionare correttamente.
Vediamo uno script Bash che consente di configurare i permessi ideali per un sito WordPress, assicurando che siano impostati in modo sicuro e conforme alle migliori pratiche.
Perché i permessi sono importanti
In un ambiente server, i permessi determinano chi può leggere, scrivere ed eseguire file e directory. Per un sito WordPress, una corretta impostazione dei permessi aiuta a prevenire:
- Accessi non autorizzati ai file critici.
- Modifiche accidentali o malevole ai file.
- Problemi di funzionamento dovuti a permessi insufficienti.
Panoramica dello Script
Lo script proposto è progettato per essere eseguito da un utente con privilegi di root e configura automaticamente i permessi su un'installazione WordPress esistente. Ecco come funziona:
- Proprietà dei file: I file e le directory vengono assegnati all'utente e al gruppo
www-data
, che è tipicamente l'utente del web server su sistemi basati su Linux. - Permessi di directory: Tutte le directory vengono impostate con permessi
755
, che consentono al proprietario di leggere, scrivere ed eseguire, mentre altri utenti possono solo leggere ed eseguire. - Permessi dei file: Tutti i file vengono impostati con permessi
644
, che consentono al proprietario di leggere e scrivere, mentre altri utenti possono solo leggere. - Permessi speciali: I file
wp-config.php
e.htaccess
ricevono permessi più restrittivi per proteggere le informazioni sensibili e garantire che solo l'utente del web server possa gestirli.
Script bash per impostare i permessi
Di seguito è riportato lo script Bash:
#!/bin/bash
# Verifica se lo script è stato eseguito come root
if [ "$EUID" -ne 0 ]; then
echo "Per favore, esegui questo script come root"
exit
fi
# Richiede il nome del dominio per cui si vogliono impostare i permessi
echo "Inserisci il nome del dominio per cui vuoi settare i permessi (esempio.com oppure sub.esempio.com):"
read -p "Dominio: " domain
# Variabili per i permessi
WP_OWNER=www-data # <-- proprietario wordpress
WP_GROUP=www-data # <-- gruppo wordpress
WP_ROOT=/var/www/$domain/wordpress # <-- percorso wordpress
WS_GROUP=www-data # <-- gruppo web server
# Reset dei permessi predefiniti
find ${WP_ROOT} -exec chown ${WP_OWNER}:${WP_GROUP} {} \; # <-- imposta il proprietario e il gruppo
find ${WP_ROOT} -type d -exec chmod 755 {} \; # <-- imposta i permessi delle directory
find ${WP_ROOT} -type f -exec chmod 644 {} \; # <-- imposta i permessi dei file
# Imposta i permessi speciali
chgrp ${WS_GROUP} ${WP_ROOT}/wp-config.php # <-- imposta il gruppo di wp-config.php
chmod 640 ${WP_ROOT}/wp-config.php # <-- imposta i permessi di wp-config.php
# Crea il file .htaccess se non esiste e imposta i permessi
touch ${WP_ROOT}/.htaccess # <-- crea il file .htaccess se non esiste
chgrp ${WS_GROUP} ${WP_ROOT}/.htaccess # <-- imposta il gruppo del file .htaccess
chmod 644 ${WP_ROOT}/.htaccess # <-- imposta i permessi del file .htaccess
# Imposta i permessi di wp-content
find ${WP_ROOT}/wp-content -exec chown -R ${WP_OWNER}:${WS_GROUP} {} \; # <-- imposta il proprietario e il gruppo di wp-content
find ${WP_ROOT}/wp-content -type d -exec chmod 775 {} \; # <-- imposta i permessi delle directory di wp-content
find ${WP_ROOT}/wp-content -type f -exec chmod 664 {} \; # <-- imposta i permessi dei file di wp-content
echo "I permessi sono stati impostati correttamente" # <-- messaggio di conferma
Come Utilizzare lo Script
- Salva lo script: Salva il codice in un file, ad esempio imposta-permessi.sh.
- Rendi eseguibile lo script: Usa il comando chmod +x imposta-permessi.sh per renderlo eseguibile.
- Esegui lo script: Esegui lo script come root o utilizzando sudo, con il comando sudo ./imposta-permessi.sh.
- Inserisci il dominio: Quando richiesto, inserisci il nome del dominio del sito WordPress per il quale desideri configurare i permessi.
Conclusioni
Impostare correttamente i permessi su un sito WordPress è una pratica essenziale per garantire la sicurezza e il corretto funzionamento del sito. Lo script fornito è un ottimo punto di partenza per automatizzare questo processo e assicurarsi che i permessi siano impostati secondo le migliori pratiche.