Configurazione dell'utente
Quindi iniziamo aggiungendo l'utente principale al gruppo utenti di Apache:
sudo usermod -a -G www-data demo
Ciò aggiunge l'utente "demo" al gruppo "www-data". Assicurati di utilizzare entrambe le opzioni -a e -G con il comando usermod mostrato sopra.
Sarà necessario disconnettersi e accedere nuovamente per abilitare il cambio di gruppo.
Controlla i gruppi ora:
groups
...
# demo www-data
Quindi ora sono un membro di due gruppi: il mio (demo) e il gruppo Apache (www-data).
Configurazione della cartella
Ora dobbiamo assicurarci che la cartella public_html sia di proprietà dell'utente principale (demo) e faccia parte del gruppo Apache (www-data).
Impostiamolo:
sudo chgrp -R www-data /home/demo/public_html
Dato che parliamo di permessi, aggiungerò una breve nota riguardo al comando sudo: è una buona abitudine usare percorsi assoluti (/ home / demo / public_html) come mostrato sopra piuttosto che percorsi relativi (~ / public_html). Assicura che sudo venga utilizzato nella posizione corretta.
Se hai una cartella public_html con collegamenti simbolici, fai attenzione a quel comando poiché seguirà i collegamenti simbolici. In quei casi di una cartella public_html funzionante, cambia ogni cartella manualmente.
setgid
Bene fino ad ora, ma ricorda che il comando che abbiamo appena dato ha effetto solo sulle cartelle esistenti. Che ne dici di qualcosa di nuovo?
Possiamo impostare la proprietà in modo che tutte le novità siano anche nel gruppo "www-data".
Il primo comando cambierà i permessi per la directory public_html per includere il bit "setgid":
sudo chmod 2750 /home/demo/public_html
Ciò garantirà che a tutti i nuovi file venga assegnato il gruppo "www-data". Se hai sottodirectory, ti consigliamo di eseguire quel comando per ogni sottodirectory (questo tipo di autorizzazione non funziona con '-R'). Fortunatamente verranno create nuove sottodirectory con il bit "setgid" impostato automaticamente.
Se è necessario consentire l'accesso in scrittura ad Apache, ad esempio a una directory di caricamento, impostare le autorizzazioni per quella directory in questo modo:
sudo chmod 2770 /home/demo/public_html/domain1.com/public/uploads
Le autorizzazioni devono essere impostate solo una volta poiché ai nuovi file verrà automaticamente assegnata la corretta proprietà.