Lo script segue le pratiche consigliate per i permessi di WordPress:
- File: Permessi a
644
(lettura/scrittura per il proprietario, lettura per altri). - Directory: Permessi a
755
(lettura/esecuzione per tutti, scrittura solo per il proprietario). - File sensibili: Come
wp-config.php
, impostati a600
(solo il proprietario può leggere/scrivere). - Utente/Group: Facoltativamente, puoi assegnare un utente o un gruppo specifico.
#!/bin/bash
# Configura il percorso root di WordPress
WP_ROOT="/percorso/al/tuo/sito" # Cambia con il percorso corretto
# Configura il proprietario (user e group) - modifica se necessario
USER="www-data" # Utente web server (es: www-data, apache, nginx)
GROUP="www-data" # Gruppo web server
# Controlla se eseguito come root
if [ "$EUID" -ne 0 ]; then
echo "Per favore esegui lo script come root o con sudo."
exit 1
fi
echo "Impostazione dei permessi per il sito WordPress nella directory: $WP_ROOT"
# Imposta il proprietario per tutti i file e directory
echo "Imposto il proprietario a $USER:$GROUP..."
chown -R $USER:$GROUP "$WP_ROOT"
# Imposta i permessi per le directory
echo "Imposto i permessi delle directory a 755..."
find "$WP_ROOT" -type d -exec chmod 755 {} \;
# Imposta i permessi per i file
echo "Imposto i permessi dei file a 644..."
find "$WP_ROOT" -type f -exec chmod 644 {} \;
# Imposta i permessi sicuri per wp-config.php
if [ -f "$WP_ROOT/wp-config.php" ]; then
echo "Imposto permessi sicuri per wp-config.php (600)..."
chmod 600 "$WP_ROOT/wp-config.php"
fi
# Permessi speciali per wp-content/uploads (scrivibili dal server)
UPLOADS_DIR="$WP_ROOT/wp-content/uploads"
if [ -d "$UPLOADS_DIR" ]; then
echo "Imposto permessi per la directory uploads (775)..."
chmod -R 775 "$UPLOADS_DIR"
echo "Rendo uploads scrivibile da utente e gruppo..."
chown -R $USER:$GROUP "$UPLOADS_DIR"
fi
echo "Permessi impostati correttamente per WordPress!"
# Finitura
exit 0
Come usare lo script:
- Crea lo script:
- Salva il codice in un file chiamato, ad esempio,
set-wordpress-permissions.sh
.
- Salva il codice in un file chiamato, ad esempio,
- Modifica le variabili:
- Cambia
WP_ROOT
con il percorso della root del tuo sito WordPress. - Cambia
USER
eGROUP
con l’utente e il gruppo utilizzati dal server web (es.www-data
per Apache/Nginx su Ubuntu).
- Cambia
- Rendi lo script eseguibile:
chmod +x set-wordpress-permissions.sh - Esegui lo script con privilegi di amministratore:
sudo ./set-wordpress-permissions.sh
- Verifica i permessi:
Puoi controllare che i permessi siano stati applicati correttamente con
ls -l /percorso/al/tuo/sito
Spiegazione dei permessi:
- 644 (file): Lettura/scrittura per il proprietario, lettura per il gruppo e altri.
- 755 (directory): Lettura/esecuzione per tutti, scrittura per il proprietario.
- 600 (wp-config.php): Lettura/scrittura solo per il proprietario.
- 775 (uploads): Lettura/scrittura per proprietario e gruppo, lettura per altri.
Nota:
- Lo script si assume che il server web (Apache/Nginx) utilizzi l’utente/gruppo specificato (
www-data
). - Se stai utilizzando configurazioni diverse, assicurati di modificare di conseguenza i permessi o il proprietario.
- Avrai bisogno di un’utenza con abbastanza privilegi per eseguire il file sh sulla macchina dove gira il tuo wordpress.