Você está na página 1de 8

Configuração de Área Pública

sob o Pure-Ftpd (utilizando


symlink sob apache)

Maio/05
Março/09
Maio/11
AVISO:

• este documento explica a instalação de áreas públicas para os usuários de qualquer ftp com
senha utilizando para isto um link simbólico para um subdiretório na área do usuário e
Indexes e FollowSymlinks do apache.

• o descrito a seguir foi baseado no pure-ftpd instalado no servidor eco.cpd.ufv.br que possui
dois IPs para dois FTPs virtuais (ftp.pvanet.ufv.br e ftp2.cpd.ufv.br)

1. Criar no /var/www ou outro subdiretório qualquer, os subdiretórios para cada ftp hospedado e
permitir que o apache possa mexer neles:

cd /var/www
mkdir FTPs
cd FTPs
mkdir ftp2 pvanet
cd /var/www
chown -R apache.apache FTPs

Obs.: o motivo do dono/grupo ser o apache é para poder fazer um aplicativo em PHP que
permite fazer os links simbolicos (neste momento (27/05/05) não sei se o apache irá
permitir)

2. Criar os dominios virtuais para cada ftp virtual:

2.1. corrigir /etc/httpd/conf.d/41_mod_ssl.default-vhost.conf para evitar o erro devido à


configuração do https virtual do Mandrake. Para isto alterar para que o arquivo, no inicio,
fique como segue:

#LOCAL - inicio#

#LOCAL#qlq hostname cai aqui!#<VirtualHost _default_:443>

# ATENCAO: se for usar https neste servidor PRECISA do comando


# a seguir com o IP verdadeiro, assim como o IP verdadeiro no
# VirtualHost
#NameVirtualHost 10.10.10.10:443

<VirtualHost 10.10.10.10:443>

#LOCAL - fim#

Obs.: acima usei um IP falso qualquer e funcionou OK porque este servidor não utiliza
https.

2.2. criar o domínio para o ftp2.cpd.ufv.br. Para isto é necessário alterar o arquivo
/etc/httpd/conf/vhosts/Vhosts.conf (ver Anexo A):

<VirtualHost *>
ServerName ftp2.cpd.ufv.br
DocumentRoot /var/www/FTPs/ftp2

<Directory "/var/www/FTPs/ftp2">
Options Indexes FollowSymLinks
# order Deny,Allow => access is allowed by default, deny directives evaluated first
Order Deny,Allow
Allow from All
</Directory>

</VirtualHost>

2.3. criar o domínio virtual para ftp.pvanet.ufv.br (veja como ficou o arquivo
/etc/httpd/conf/vhosts/Vhosts.conf no Anexo A).

2.4. COMO fazer com que um usuário de FTP possua uma área pública:

Por enquanto a coisa é bem braçal!

a) vamos supor que um professor, com código de usuário umprof no ftp.pvanet.ufv.br queira
este serviço. Fazer o serguinte:

● entrar no host onde está o ftp2

● ir no subdiretorio do professor:
cd /var/pure-ftpd/pvanet/umprof
mkdir area-publica
chown pvanet.pvanet area-publica

● ir no subdiretório do domínio virtual para criar o apontador:


cd /var/www/FTPs/pvanet
ln -s /var/pure-ftpd/pvanet/umprof/area-publica umprof
chown apache.apache umprof 1

b) agora supondo um usuário no ftp2.cpd.ufv.br de nome umusuario:

● ir no subdiretorio do usuário:
cd /var/pure-ftpd/ftp2/umusario
mkdir area-publica
chown ftp2.ftp2 area-publica

● ir no subdiretório do domínio virtual para criar o apontador:


cd /var/www/FTPs/ftp2
ln -s /var/pure-ftpd/ftp2/umusuario/area-publica umusario
chown apache.apache umusario 2

2.5. FINALMENTE: como o usuário utiliza:

1 MUITO, MAS MUITO CUIDADO para não dar “chown apache.apache umprof/” (barra no final NÃO PODE)
2 MUITO, MAS MUITO CUIDADO para não dar “chown apache.apache umusuario/” (barra no final NÃO PODE)
O usuário utilizará sua área de ftp utilizando um software próprio para ftp ou um browser. Como
em geral os usuários utilizam um browser, os exemplos são para o InternetExplorer, Firefox,
Konqueror etc. Basta colocar na barra do navegador o que segue:

ftp://<código_do_usuário>@<servidor>
ou ftp://<código_do_usuário>:<senha>@<servidor> (não recomendado!)

exemplos:
ftp://umusuario@ftp2.cpd.ufv.br
ftp://umusuario:umasenha@ftp2.cpd.ufv.br

alguns browsers permitem não especificar nem o usuário ou a senha e pedirão ambas se
necessário, exemplo:

ftp://ftp2.cpd.ufv.br

Tendo o usuário se 'logado', ele poderá 'arrastar' os seus arquivos do WindowsExplorer para o
InternetExplorer.

Tudo que o usuário 'arrastar' para seu subdiretório será PRIVADO e só poderá ser lido sabendo o
código do usuário e a senha.

Tudo que o usuário 'arrastar' para seu subdiretório 'area-publica' poderá ser acessado por
qualquer um desde que utilize o protocolo http (www), exemplos:

http://ftp.pvanet.ufv.br/umusuario
http://ftp2.cpd.ufv.br/umusuario

Observe-se que da forma que foi implementado, em cada domínio virtual pode se repetir o
código do usuário sem causar conflitos.

Modelo de email a ser encaminhado ao usuário:


Prezado Sr(a). XXXXXX,

foi criada uma área de FTP para V.Sra. no ftp2.cpd.ufv.br


para ser utilizada é necessário um usuário (para dar login) e senha

Este servidor ftp (ftp2.cpd.ufv.br) permite que tudo que seja colocado
no subdiretório "area-publica" possa ser utilizado pelos usuários externos
usando o protocolo http no lugar do protocolo ftp o que facilita o
acesso aos arquivos.

Seguem as instruções de uso.


Em caso de dúvida queira me contatar.
obs.: onde aparece "umusuario" ou "<código_do_usuário>" usar o usuário
que lhe foi repassado e onde aparece "umasenha" utilize a senha
que lhe foi repassada.

O usuário utilizará sua área de ftp utilizando um software próprio para


ftp ou um browser que permita gravar arquivos.
Como em geral os usuários utilizam um browser, os exemplos são
para o InternetExplorer, Konqueror etc.

Basta colocar na barra do navegador o que segue:


ftp://<código_do_usuário>@<servidor>

ou (não recomendado por causa da senha visível!):

ftp://<código_do_usuário>:<senha>@<servidor>

exemplos:
ftp://umusuario@ftp2.cpd.ufv.br
ftp://umusuario:umasenha@ftp2.cpd.ufv.br
ftp://ftp2.cpd.ufv.br

Se usuário e/ou a senha não for especificado, o sistema abrirá uma


janela solicitando a informação que falta.

Tendo o usuário se 'logado', ele poderá 'arrastar' os seus arquivos


do WindowsExplorer para o InternetExplorer ou de uma janela
do Konqueror para outra.

Tudo que o usuário 'arrastar' para seu subdiretório será PRIVADO e


só poderá ser lido sabendo o código do usuário e a senha.

Tudo que o usuário 'arrastar' para seu subdiretório 'area-publica'


poderá ser acessado por qualquer um desde que utilize
o protocolo http (www), exemplo:
http://ftp2.cpd.ufv.br/umusuario

Espero que tenham gostado porque apanhei até agora (13:47 sem almoçar).

Em 22/12/2009; atualizado 01/07/2010, 05/05/2011

Exemplo de inserção na tabela do mysql que está no aton.cpd.ufv.br

mysql -u root -p
use pureftpd;
insert into users (User,IP,Password,Uid,Gid,Dir,Quotafiles,QuotaSize,Observacao)
values('XXXusuarioXXX','200.235.128.30','XXXsenhaXXX','ftp2','ftp2',
'/var/pure-ftpd/ftp2/XXXusuarioXXX',1000,65000,'desativar em 15/01/2010');

insert into users (User,IP,Password,Uid,Gid,Dir,Quotafiles,QuotaSize,Observacao)


values('hymenoptera','200.235.128.30,'molecular1','ftp2','ftp2',
'/var/pure-ftpd/ftp2/hymenoptera',1000,65000,'contato Profa. Mara Tavares');
ANEXO A
arquivo /etc/httpd/conf/vhosts/Vhosts.conf
(apenas o adicionado)
#LOCAL - inicio#

# A T E N C A O:
# para "NameVirtualHost *" funcionar eh necessario alterar o arquivo
# /etc/httpd/conf.d/41_mod_ssl.default-vhost.conf para no inicio conter as
# seguintes mudancas:
# 1) NameVirtualHost <IP_DESTA_MAQUINA>:443 (nao funciona com "*")
# 2) de <VirtualHost _default_:443>
# PARA <VirtualHost <NOME_QUALIFICADO_DESTA_MAQUINA>:443>
# OU, se nao for usar https, basta:
# <VirtualHost 10.10.10.10:443>

NameVirtualHost *

<VirtualHost _default_:*>

# nega para todo mundo a menos que o dominio exista!


DocumentRoot /var/www/html
<Directory /var/www/html>
Order Allow,Deny
Deny from All
</Directory>

</VirtualHost>

<VirtualHost *>

ServerName ftp.pvanet.ufv.br
DocumentRoot /var/www/FTPs/pvanet

<Directory "/var/www/FTPs/pvanet">
Options Indexes FollowSymLinks
# order Deny,Allow => access is allowed by default, deny directives evaluated first
Order Deny,Allow
Allow from All
</Directory>

</VirtualHost>

<VirtualHost *>

ServerName ftp2.cpd.ufv.br
DocumentRoot /var/www/FTPs/ftp2

<Directory "/var/www/FTPs/ftp2">
Options Indexes FollowSymLinks
# order Deny,Allow => access is allowed by default, deny directives evaluated first
Order Deny,Allow
Allow from All
</Directory>

</VirtualHost>

#LOCAL - fim#

Você também pode gostar