Nei sistemi Debian based, come lo è Ubuntu, l’utente proprietario di Apache è in default www-data.
La cosa non desta nessun problema se non che, avendo la web root di apache nella mia home, tutte le volte che via nautilus tento di spostare, modificare e soprattutto cancellare intere directory, se in quese c’è un file generato via script, ottengo un permission nieded come risposta.
Per evitare la cosa, se usate il vostro web server in locale solo per esperimenti ed in generale testing, potete cambiare l’owner di apache assegnandolo a voi stessi.
Aprite il file di configurazione di Apache, in ubuntu:
Cercate le righe contenenti:
Group www-data
Ed appropriatevi della web server 🙂
Group davide
Voi metterete il vostro nome utente 😉 . In questo modo, i file e le directory creati via script o uploadati via http avranno come proprietario di default l’utente che usate per le operazioni normali.
Dopo la modifica, chiudete il file e riavviate il server.
Se avete sessioni aperte, meglio riavviare anche il browser, perchè i file di sessione aperti si ritroverebbero un owner non più corrispondente con quello del web server che chiede di accedervi.
Mi raccomando: fate questa modifica solo sulla vosta distro che usate come desktop, ma su cui avete installato apache per i vostri esperimentucoli 🙂
UPDATE:
Se usate phpmyadmin e dopo la modifica dell’ownership vi compare il messaggio:
Non vi preoccupate. Dovete cambiare owner anche a phpmyadmin e riassegnare i giusti permessi al fine di leggere la mistica parola segreta.
#e la vostra directory di phpmyadmi
sudo chown -R davide:davide /home/davide/public_html/phpmyadmin/
sudo chmod 444 /etc/phpmyadmin/blowfish_secret.inc.php
Scusate, non c’avevo pensato prima 🙂
Mi pareva di aver letto da qualche parte che si puo’ configurare Apache in modo che quando va’ a leggere/scrivere in una certa directory, lo fa’ come se fosse un altro utente. Qualcosa stile “Per quella directory, comportati come utente giambo gruppo users”.
?
Sai se e’ possibile, grande Guru
A livello di directory non so, ma è sicuramente possibile a livello di virtualhost.
Da apache 2.0 il mod_suexec usa la direttiva SuexecUserGroup
<VirtualHost dominio.com:80>
SuexecUserGroup Utente Gruppo
</VirtualHost>