Hospedagem Virtual · 4 min read · Dec 15, 2025

Hospedagem Virtual Com Proftpd E MySQL (Incl. Quota)

Este é um “copiar e colar” HowTo! A maneira mais fácil de seguir este tutorial é usar um cliente de linha de comando/cliente SSH (como PuTTY para Windows) e simplesmente copiar e colar os comandos (exceto onde você deve fornecer suas próprias informações, como endereços IP, nomes de host, senhas,…). Isso ajuda a evitar erros de digitação.

Hospedagem Virtual Com Proftpd E MySQL (Incl. Quota)

Versão 1.0
Autor: Falko Timme

Este documento descreve como instalar um servidor Proftpd que usa usuários virtuais de um banco de dados MySQL em vez de usuários reais do sistema. Isso é muito mais eficiente e permite ter milhares de usuários ftp em uma única máquina. Além disso, mostrarei o uso de quota com esta configuração.

Para a administração do banco de dados MySQL, você pode usar ferramentas baseadas na web como phpMyAdmin, que também será instalado neste howto. O phpMyAdmin é uma interface gráfica confortável, o que significa que você não precisa se preocupar com a linha de comando.

Este tutorial é baseado no Debian Sarge (Debian 3.1). Você já deve ter configurado um sistema Debian básico, conforme descrito aqui: https://www.howtoforge.com/perfect_setup_debian_sarge e https://www.howtoforge.com/perfect_setup_debian_sarge_p2. Deve se aplicar a outras distribuições baseadas em Debian, como Ubuntu, Knoppix, etc., sem modificações. Em outras distribuições como SuSE, Fedora, Mandriva, etc., apenas a instalação do Proftpd é diferente; a configuração do Proftpd deve se aplicar a essas distribuições também.

Este howto é destinado como um guia prático; não cobre os fundamentos teóricos. Eles são tratados em muitos outros documentos na web.

Este documento vem sem garantia de qualquer tipo! Quero dizer que esta não é a única maneira de configurar tal sistema. Existem muitas maneiras de alcançar esse objetivo, mas este é o caminho que eu sigo. Não dou nenhuma garantia de que isso funcionará para você!

1 Instalar MySQL E phpMyAdmin

Tudo isso pode ser instalado com um único comando:

apt-get install mysql-server mysql-client libmysqlclient12-dev phpmyadmin

Você será questionado sobre algumas perguntas:

Ativar suExec? <– Sim
Configurando mysql-server (Dicas de Instalação) <– OK
Qual servidor web você gostaria de reconfigurar automaticamente? <– apache, apache2
Você quer que eu reinicie o apache agora? <– Sim

Crie uma senha para o usuário MySQL root (substitua yourrootsqlpassword pela senha que você deseja usar):

mysqladmin -u root password yourrootsqlpassword

2 Instalar Proftpd Com suporte a MySQL

Para Debian, há um pacote pré-configurado proftpd-mysql disponível. Instale-o como um daemon independente assim:

apt-get install proftpd-mysql

Executar proftpd a partir do inetd ou de forma independente? <– independente

Então, criamos um grupo ftp (“ ftpgroup “) e um usuário (“ ftpuser “) ao qual todos os nossos usuários virtuais serão mapeados. Substitua o grupo e o ID do usuário 2001 por um número que esteja livre em seu sistema:

groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c “usuário proftpd” -g ftpgroup ftpuser

3 Criar O Banco De Dados MySQL Para Proftpd

Agora criamos um banco de dados chamado ftp e um usuário MySQL chamado proftpd, que o daemon proftpd usará mais tarde para se conectar ao banco de dados ftp:

mysql -u root -p
create database ftp;
GRANT SELECT, INSERT, UPDATE, DELETE ON ftp.
TO ‘proftpd’@’localhost’ IDENTIFIED BY ‘password’;
GRANT SELECT, INSERT, UPDATE, DELETE ON ftp. TO ‘proftpd’@’localhost.localdomain’ IDENTIFIED BY ‘password’;
FLUSH PRIVILEGES;

Substitua a string password pela senha que você deseja usar para o usuário MySQL proftpd. Ainda no shell MySQL, criamos as tabelas do banco de dados que precisamos:

USE ftp;

CREATE TABLE ftpgroup (
groupname varchar(16) NOT NULL default ‘’,
gid smallint(6) NOT NULL default ‘5500’,
members varchar(16) NOT NULL default ‘’,
KEY groupname (groupname)
) TYPE=MyISAM COMMENT=’Tabela de grupo ProFTP’;

CREATE TABLE ftpquotalimits (
name varchar(30) default NULL,
quota_type enum(‘user’,’group’,’class’,’all’) NOT NULL default ‘user’,
per_session enum(‘false’,’true’) NOT NULL default ‘false’,
limit_type enum(‘soft’,’hard’) NOT NULL default ‘soft’,
bytes_in_avail int(10) unsigned NOT NULL default ‘0’,
bytes_out_avail int(10) unsigned NOT NULL default ‘0’,
bytes_xfer_avail int(10) unsigned NOT NULL default ‘0’,
files_in_avail int(10) unsigned NOT NULL default ‘0’,
files_out_avail int(10) unsigned NOT NULL default ‘0’,
files_xfer_avail int(10) unsigned NOT NULL default ‘0’
) TYPE=MyISAM;

CREATE TABLE ftpquotatallies (
name varchar(30) NOT NULL default ‘’,
quota_type enum(‘user’,’group’,’class’,’all’) NOT NULL default ‘user’,
bytes_in_used int(10) unsigned NOT NULL default ‘0’,
bytes_out_used int(10) unsigned NOT NULL default ‘0’,
bytes_xfer_used int(10) unsigned NOT NULL default ‘0’,
files_in_used int(10) unsigned NOT NULL default ‘0’,
files_out_used int(10) unsigned NOT NULL default ‘0’,
files_xfer_used int(10) unsigned NOT NULL default ‘0’
) TYPE=MyISAM;

CREATE TABLE ftpuser (
id int(10) unsigned NOT NULL auto_increment,
userid varchar(32) NOT NULL default ‘’,
passwd varchar(32) NOT NULL default ‘’,
uid smallint(6) NOT NULL default ‘5500’,
gid smallint(6) NOT NULL default ‘5500’,
homedir varchar(255) NOT NULL default ‘’,
shell varchar(16) NOT NULL default ‘/sbin/nologin’,
count int(11) NOT NULL default ‘0’,
accessed datetime NOT NULL default ‘0000-00-00 00:00:00’,
modified datetime NOT NULL default ‘0000-00-00 00:00:00’,
PRIMARY KEY (id),
UNIQUE KEY userid (userid)
) TYPE=MyISAM COMMENT=’Tabela de usuário ProFTP’;

quit;

Como você pode ter notado, com o comando quit; deixamos o shell MySQL e estamos de volta ao shell do Linux.

A propósito, (estou sugerindo que o nome do host do seu sistema de servidor ftp é server1.example.com) você pode acessar phpMyAdmin através de http://server1.example.com/phpmyadmin/ (você pode usar o endereço IP em vez de server1.example.com) em um navegador e fazer login como proftpd. Então você pode dar uma olhada no banco de dados. Mais tarde, você pode usar phpMyAdmin para administrar seu servidor Proftpd.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.