FTP para múltiplos users
Autor: Kenny | Publicado: 2012-11-02T18:04:00Z

Há quase um ano que aluguei um Linode. Um Linode é uma máquina virtual num local remoto, onde podemos fazer quase tudo o que quisermos, sendo a ideia principal ter um servidor pessoal que nós controlamos. Este servidor virtual é denominado VPS. 

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&nbsp;
[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.