Hai ragione : sto rispondendo talmente tante volte a questa domanda che mi rendo veramente conto che chi non conosce il problema non può che porsi i tuoi stessi quesiti.
Il fatto è che la risposta è quella che ti ho gia datto.
La soluzione al problema è conoscere lo strumento che usi.
Di guide su unix ne esistono dal 70 e di spiegazioni ce ne sono milioni in internet.
Cerco di spiegarti contestualmente al tuo punto di vista :
Prima di tutto è necessario conoscere la logica di comportamente del filesystem di Unix.
chmod e chown sono in sintesi i due comandi che ti permettono di gestire tale logica.
Detto questo : su linux / unix , esistono permessi sui file (settabili via chmod per utenti , gruppi ed estranei), e proprietari dei file.
Così come i file anche i processi girano sul sistema portandosi dietro le informazioni necessarie a distinguere chi fa cosa e per conto di chi.
Nono conoscendo la configurazione del server virtuale di cui parli posso riassumerti quello che è il comportamento standard dei vari server web basati su apache.
Il processo Apache è "figlio" di root, ma solitamente solamente il processo padre gira con tali permessi : in realtà le pagine del tuo sito sono rese disponibili da fork di tale processo che prendono i permessi dell'utente selezionato nel file httpd.conf (o apahce.conf .. dipende dai sistemi).
Quindi ammettiamo che il webserver sia configurato per girare coi permessi dell'utente apache, gruppo apache.
Quando un visitatore accede alla tua pagina apache, in servizio sulla porta 80, manda un suo "scagnozzo" (process figlio) a svolgere il lavoro richiesto, dandoli i permessi di apache.apache.
La pagina web viene elaborata e processata con tali permessi, qualora dovesse scrivere su filesystem, ad esempio caricando un file inviato da un utente, tale file verrà scritto sul file system coi permessi di tale utente.
Però la porzione di filesystem sulla quale deve scrivere è in realtà la tua web directory che indovina un pò : ha i permessi del tuo utente FTP e solo di quello altrimenti altri utenti della macchina potrtrebbero accedere ai tuoi file !
Quindi se tu sei l'utente ftp pippo.gruppoftp e hai la tua directory1 che appartiene al tuo utente e gruppo mettiamo copi permessi 755 (ovvero read, write, execute per il proprietario, read&execute per gruppo ed estranei), quando il processo apache.apache cerca di scrivere su quella dir non potrà farlo!
Soluzione :
Se il tuo utente ftp ha un gruppo in comune col propritario dell'istanza di apache allora le direcorty e file basta che abbiano i permesi di scrittura anche sul byte del gruppo , (ovvero 7 nella seconda posizione).
Altrimenti tali permessi devono essere sul 3 byte.
Ci avrai capito poco .. è per questo che dicevo che se ti interessa risolvere davvero il problema devi capire.
Capire è sinonimo di conoscere per certi versi, da qui il mio conaiglio di leggerti i manuali su Linux, sicuramente meglio scritti di quanto non possa fare io col mio pessimo italiano.