Estou a pensar criar vários posts sobre como configurar aqui alguns serviços (owncloud, ajenti, lamp stack, cms's várias...) e como hoje estive a batalhar com o meu servidor de FTP decidi reactivar isto.
Antes de mais vou assumir que usam CentOS ou semelhante, apesar de neste caso ser irrelevante pois se usam VSFTP este tutorial é válido para qualquer distro.Vou assumir ainda que o http root se encontra em /var/www/.
Imaginem que têm duas cms's, uma Wordpress e outra Joomla no mesmo servidor. Estão a visualizar? Cool. Em termos de segurança devem ter dois utilizadores diferentes para cada cms. Para simplificar uso os utilizadores wordpress e joomla.
As próprias bases de dados teriam de ter utilizadores diferentes, mas foquemos-nos no serviço FTP.
Imaginemos que instalaram já ambas CMSs, o primeiro que devem fazer é criar novos utilizadores. Usando ssh autenticam-se como utilizador root no servidor e usam o comando useradd, podendo ou não especificar directório home e tipo default de terminal.
[root@labs /]# useradd -d /home/wordpress -s /sbin/nologin wordpress
[root@labs /]# useradd -d /home/joomla -s /sbin/nologin joomla
Agora têm os utilizadores criados. Agora criamos passwords para cada user, usando o comando passwd.
[root@labs /]# passwd wordpress
[root@labs /]# passwd joomla
Agora vamos configurar o vsftp daemon. As configurações deste serviço estão normalmente em /etc/vsftpd/vsftpd.conf.
Abrindo com o esse ficheiro:
[root@labs /]# vi /etc/vsftpd/vsftpd.conf
Vamos acrescentar as linhas (no vi carreguem no insert ou i para inserir dados).
chroot_local_user=YES
user_config_dir=/etc/vsftpd/users
De seguida vamos salvamos e saímos do vi (pressionando escape e escrevendo :wq seguido de enter).
Vamos agora criar uma directoria chamada users, usando o comando
[root@labs /]# mkdir /etc/vsftpd/users
Vamos agora criar configurações para cada um dos utilizadores, usando outra vez o vi (podem usar qualquer editor de texto, really, mas o vi é muito bom).
[root@labs /]# vi /etc/vsftpd/users/wordpress
E acrescentam as seguintes linhas, usando o mesmo modus operandi descrito anteriormente.
local_root=/var/www/wordpress
dirlist_enable=YES
download_enable=YES
write_enable=YES
Repetem para o utilizador joomla, (alterando a directoria claro).
Agora temos de mudar o dono da directoria.
[root@labs /]# cd /var/www/wordpress
E usando o comando chown mudamos o ownership da directoria:
[root@labs /]# chown -hR wordpress *
Depois repetimos o processo para o utilizador joomla, usando a respectiva directoria.
No final ficamos com dois utilizadores diferentes, sendo que quando o utilizador wordpress se logar será reencaminhado para a directoria /var/www/wordpress.
Agora para tudo isto funcionar é preciso reiniciar o serviço vsftpd:
[root@labs /]# service vsftpd restart
O mesmo é possível de fazer com SCP. Talvez numa próxima. :)
Kenny uses blog revive, it's super effective!
Kenny.