Centos установка PureFTPd с виртуальными пользователями в MySQL

Для начала подключаем EPEL репозиторий
После ставим необходимый софт:
# yum install -y mysql mysql-server pure-ftpd |
Добавляем сервисы в автозагрузку:
# chkconfig --levels 235 mysqld on |
# /etc/init.d/mysqld start |
# chkconfig --levels 235 pure-ftpd on |
настраиваем мускул
# mysql_secure_installation |
Добавляем группу и пользователя ftp:
# groupadd -g 2001 ftpgroup |
# useradd -u 2001 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuser |
Создаем базу данных под фтп:
создаем базу и пользователя с правами на нее:
CREATE DATABASE pureftpd; |
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost' IDENTIFIED BY 'hardpass'; |
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost.localdomain' IDENTIFIED BY 'hardpass'; |
hardpass не забываем изменить на свой)
Создадим таблицу в бд
User varchar(16) NOT NULL default '', |
status enum('0','1') NOT NULL default '0', |
Password varchar(64) NOT NULL default '', |
Uid varchar(11) NOT NULL default '-1', |
Gid varchar(11) NOT NULL default '-1', |
Dir varchar(128) NOT NULL default '', |
ULBandwidth smallint(5) NOT NULL default '0', |
DLBandwidth smallint(5) NOT NULL default '0', |
comment tinytext NOT NULL, |
ipaccess varchar(15) NOT NULL default '*', |
QuotaSize smallint(5) NOT NULL default '0', |
QuotaFiles int(11) NOT NULL default 0, |
Настраиваем pure-ftpd, открываем файл настроек:
# nano /etc/pure-ftpd/pure-ftpd.conf |
находим и меняем следующие параметры, на те что указаны ниже:
MySQLConfigFile /etc/pure-ftpd/pureftpd-mysql.conf |
Настраиваем подключение к базе
# nano /etc/pure-ftpd/pureftpd-mysql.conf |
Например так:
MYSQLSocket /var/lib/mysql/mysql.sock |
#MYSQLCrypt md5, cleartext, crypt() or password() - md5 is VERY RECOMMENDABLE uppon cleartext |
MYSQLGetPW SELECT Password FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") |
MYSQLGetUID SELECT Uid FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") |
MYSQLGetGID SELECT Gid FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") |
MYSQLGetDir SELECT Dir FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") |
MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") |
MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") |
MySQLGetQTASZ SELECT QuotaSize FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") |
MySQLGetQTAFS SELECT QuotaFiles FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") |
Запускаем на фтп сервер:
# /etc/init.d/pure-ftpd start |
Создадим тестового пользователя:
как-то так:
INSERT INTO `ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) VALUES ('testuser', '1', MD5('secret'), '2001', '2001', '/home/testuser', '100', '100', '', '*', '500', '0'); |
только что мы создали пользователя testuser с квотой в 500 Мб, и скоростью загрузки отдачи 100Кбит/с.
На этом все, пробуем подключиться к фтп с только что созданным пользователем.
Возможно, необходимо будет настроить iptables
01.07.2013 в 17:25
· Ссылка
Ага, спс, поправил очепятки
30.06.2013 в 17:35
· Ссылка
«\L»AND нужно писать отдельно