- Installare FTP server, se non già presente. Questa volta ho installato vsftp.
- creare account utenti con useradd (o adduser) configurando password, home e tutto quanto
- definire un gruppo che sarà usato per dare accesso in scrittura ai file del sito. È possibile usare www-data (usato da Apache) oppure un gruppo diverso per ciascun sito per differenziare i privilegi. Se si crea un nuovo gruppo, crearlo con groupadd
- Se necessario impostare tutti i file sul server con quel gruppo con "chgrp -R nomegruppo root/sito/web"
- impostare bit scrittura per il gruppo, io imposto anche il sgid, con "chmod -R g+rwxs root/sito/web" e per sicurezza anche l'accesso in scrittura e esecuzione per tutti con "chmod -R o+rx root/sito/web"
- iscrivere l'utente al gruppo con "usermod -a -G nomegruppo userlogin"
- creare nella home dell'utente un link alla root del sito con "ln -s root/sito/web www"
- modificare settaggi ftp server
In particolare vsftp per default non consente di scrivere (questo mi ha fatto perdere 1/2 giornata) e quando è configurato e per scrivere i file questi non sono leggibili né scrivibili dal gruppo (altre 3 ore).
Impostare il parametro "write_enable=YES" e "local_umask=0002". Se volete caricare eseguibili anche impostare "file_open_mode=0777".
Se volete attiavre le connessioni passive, aggiungere "pasv_enable=YES" e per limitare le porte "pasv_max_port=10100" e "pasv_min_port=10090" così da limitare la finestra di porte aperte del firewall.
Riavviare vsftp con "service vsftpd restart" e tutto dovrebbe funzionare come atteso.
Già che ci siamo, altre 2 ore buttate perché apache2 non aveva configurato mod_rewrite, quindi se vi serve usare path alternativi e non funziona, guardate subito lì....