sabato 20 giugno 2009

Problemi di permessi tra PHP e FTP

Se hai installato Wordpress, o Joomla, o magari scrivi i tuoi script PHP, ti sarà capitato di scontrarti con il problema dei permessi di scritture dei file.

CHMOD 755, cose del genere, su questo non scendo nei dettagli è pieno di tutorial e guide in proposito.

Il problema più comune è quando hai un server dove PHP gira -diciamo- come utente Nobody ma accedi ai file via ftp con il tuo acconto. I file creati dal PHP non puoi modificarli via FTP e viceversa perchè appartengono a utenti differenti .

O ti rassegni a cambiare i permessi entrando con l'utente root ogni volta, oppure rendi scrivibili i file da chiunque con un CHMOD 777, che è una falla di sicurezza grande come l'oceano atlantico.

Una semplice soluzione al problema è di mantenere distinti gli utenti, ma assegnare entrambi a un gruppo comune. In questo modo il tuo utente ftp condivide i permessi di gruppo, e può modificare o cancellare i file creati dal PHP.

Per fare questo, una volta ottenuti le credenziali di root scrivi:

usermod -a -G nome_gruppo_php nome_utente_ftp

Se vuoi sapere a quale gruppo appartiene l'utente, scrivi:

groups nome_utente_php

In pratica, diciamo che PHP gira come "nobody" e l'utente ftp è "addettoftp", con:

groups nobody

scopri il gruppo di nobody, probabilmente sempre nobody. Poi con:

usermod -a -G nobody addettoftp

Aggiungi a addettoftp un gruppo secondario di nobody, e puoi fare le modifiche che vuoi.

Potresti anche accorpare entrambi gli utenti in un gruppo comune, ma attenzione perchè l'utente del web server non è sicuro quanto il tuo utente ftp e non dovrebbe avere gli stessi previlegi.

NB, non sono un sistemista unix! Questo metodo funziona -ma come tutto in questo blog, lo pubblico come annotazione per me stesso, sperando sia utile anche ad altri. Commenti e correzioni sono benvenuti.



0 commenti:

Posta un commento