Ранее было показано, как быстро развернуть
Мы считаем, что сервер MySQL уже установлен и выполнена его базовая настройка. Если вы хотите использовать phpMyAdmin для управления учетными записями, тогда нужно установить еще Web-сервер Apache. Если вы не знаете, как это сделать: следите за нашим блогом – скоро мы опишем подробно процесс установки phpMyAdmin.
Кроме серверов MySQL и Apache вам понадобится еще и пакет
sudo
Когда все готово, можно приступить к настройке
sudo mcedit /etc/proftpd/proftpd.conf
Здесь mcedit – это текстовый редактор, входящий в состав файлового менеджера Midnight Commander (пакет mc). Вы можете использовать любой другой редактор. О выборе редактора мы уже говорили в статье Выбор текстового редактора в консоли Linux.
Проверьте, чтобы в файле конфигурации proftpd.conf были следующие строки (их нужно раскомментировать или добавить):
Include /etc/proftpd/sql.conf
DefaultRoot ~
RequireValidShell off
Теперь нужно создать системного пользователя и группу, к которым будут привязаны все виртуальные пользователи из базы данных MySQL:
sudo groupadd -g 2002 ftpgroup
sudo useradd -u 2002 -s /bin/false -d /bin/null -c «proftpd user» -g ftpgroup ftpuser
Эти команды создали пользователя ftpuser и группу ftpgroup.
Теперь нужно ввести несколько SQL-запросов. Для этого можно подключиться к MySQL-серверу или посредством клиента mysql или phpMyAdmin. Поскольку последнее приложение мы пока не установили, то будем использовать клиент mysql:
mysql -u root -p
Далее, находясь в клиенте mysql, введите следующие запросы:
CREATE DATABASE proftpd;
GRANT SELECT, INSERT, UPDATE, DELETE ON proftpd.* TO 'proftpd'@'localhost'
IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
Первый запрос создает базу данных proftpd, второй — предоставляет все необходимые привилегии по работе с этой базой данных пользователю proftpd. Третья команда обновляет привилегии.
После этого нужно ввести следующее:
USE proftpd;
CREATE TABLE ftpgroup (
groupname varchar(16) NOT NULL default ' ',
gid smallint(6) NOT NULL default '2001',
members varchar(16) NOT NULL default ' ',
KEY groupname (groupname)
) ENGINE=MyISAM COMMENT='ProFTP group table';
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 '2001',
gid smallint(6) NOT NULL default '2001',
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 '
modified datetime NOT NULL default '
PRIMARY KEY (id),
UNIQUE KEY userid (userid)
) ENGINE=MyISAM COMMENT='ProFTP user table';
INSERT INTO `ftpgroup` (`groupname`, `gid`, `members`) VALUES ('ftpgroup', 2002, 'ftpuser');
INSERT INTO `ftpuser` (`id`, `userid`, `passwd`, `uid`, `gid`, `homedir`, `shell`, `count`, `accessed`, `modified`) VALUES (NULL, 'test', 'password')', '2002', '2002', '/srv/ftp/test', '/sbin/nologin', '0', '
exit;
Первый запрос (USE) выбирает только что созданную базу данных. После этого мы создаем две таблицы (запрос CREATE TABLE) – ftpgroup и ftpuser. В первой будут описаны FTP-группы, во второй – FTP-пользователи. Запросы INSERT создают одну группу и одного пользователя. Обратите внимание: для пользователя мы используем оболочку /sbin/nologin и домашний каталог /srv/ftp/test – он должен существовать.
Последняя команда exit обеспечивает выход из клиента mysql – он больше нам не нужен.
Далее в текстовом редакторе нужно открыть файл /etc/proftpd/modules.conf:
sudo mcedit /etc/proftpd/modules.conf
В нем нужно раскомментировать (или добавить) две строки:
LoadModule mod_sql.c
LoadModule mod_sql_mysql.c
Как вы уже догадались, это загрузка модуля для работы с MySQL. Теперь осталось указать в настройках самого FTP-сервера, что нужно использовать MySQL для аутентификации. Откройте файл sql.conf:
sudo mcedit /etc/proftpd/sql.conf
В нем нужно указать логин и пароль пользователя, использующегося для подключения к БД, а также названия таблиц, в которых будут содержаться сведения о пользователях:
Осталось только перезапустить сервис proftpd:
sudo service proftpd restart
На этом настройка завершена. Можно попытаться подключиться к FTP-серверу, используя логин test и пароль password – именно эти учетные записи добавлены в таблицу ftpuser.