Панель управления PureUserAdmin для фтп сервера pure-FTPd.

PureUserAdmin - веб панель управления бесплатным фтп сервером pure-FTPd, которая позволяет управлять пользователями с помощью веб-сайта, при этом данные заносятся в базу данных MySQL. Функциональность данной панели минимальна - создать, удалить, изменить данные пользователя, такие как логин, пароль, домашняя директория и оповестить об этом пользователя по e-mail. На этом все, но возможно кому-то этого будет достаточно. К сожалению, заявленная работа в links лично мной не подтвердилась.

Скриншоты.

pureuseradmin new userpureuseradmin userlist

Установка PureUserAdmin.

Для установки веб панели управления нам понадобится настроенный web сервер и установленный фтп сервер pure-FTPd.

Переходим в директорию, где хранятся файлы сайта, через который мы будем открывать PureUserAdmin. К примеру:

cd /usr/local/www/apache22/data/yoursite.com/

Видимо потому, что у меня стоит php5, скрипт у меня не отрабатывал как следует, поэтому пришлось внести в него некоторые изменения.

Скачиваем в выбранную директорию архив с панелью управления:

fetch http://webpanels.spb.ru/files/PureUserAdmin-0.2.1.tar.gz

Распаковываем:

tar -xf PureUserAdmin-0.2.1.tar.gz

Теперь у нас в директории с сайтом появилась еще одна с названием pureuser.

Далее необходимо внести изменения в файл pureuserclass.php. Нужно найти раздел Class constructor либо можно осуществить поиск по %%ADMIN_MAIL затем все значения начинающиеся с %% нужно заменить на свои и должно получится, к примеру, следующее:

$this->settings["admin_email"] = "[email protected]";
$this->settings["ftp_hostname"]= "yoursite.com";
/* database settigs */
$this->settings["sql_type"]    = "mysql";
$this->settings["sql_server"]  = "localhost";
$this->settings["sql_user"]    = "user";
$this->settings["sql_pass"]    = "pass";
$this->settings["sql_dbase"]   = "pureuser";
$this->settings["sql_table"]   = "logins";

Теперь требуется создать базу данных pureuser содержащую таблицу logins состоящую из полей uid, gid, password, username, dir. Для этого идем в командную строку и исполняем следующие команды:

mysql -u user -p
#вводим пароль и получаем приглашение вида mysql>
create database pureuser;
create table logins (username varchar(100) binary primary key, password varchar(100) binary,uid int, gid int, dir varchar(100) binary);
exit

Или же все это можно сделать с помощью веб панели для mysql под названием phpMyAdmin.

Теперь открываем браузер и открываем соответствующую станицу, к примеру: http://yoursite.com/pureuseradmin/ Должна открыться страница со списком наших настроек. Все должно работать, данные о новых пользователях должны заноситься в базу.

pureuseradmin welcome

Внимание! Нельзя использовать учетную запись root и группу wheel т. е. uid/gid 0!

Настрока фтп сервера pure-FTPd на работу с базой данных.

Итак, открываем конфигурационный файл pure-ftpd:

ee /usr/local/etc/pure-ftpd.conf

Находим нужную нам строку, раскомментируем и исправляем её. Должно получиться что-то вроде:

MySQLConfigFile               /usr/local/etc/pureftpd-mysql.conf

Сохраняем конфиг и выходим. Далее создаем конфигурационный файл для связи с базой MySQL:

ee /usr/local/etc/pureftpd-mysql.conf

куда пишем следующие строки:

#MYSQLServer             localhost
#MYSQLPort               3306
MYSQLSocket              /tmp/mysql.sock
MYSQLUser                user
MYSQLPassword            password
MYSQLDatabase            pureuser
MYSQLCrypt               cleartext
MySQLTransactions        on
MYSQLGetPW               SELECT password FROM logins WHERE username="L"
MYSQLGetUID              SELECT uid FROM logins WHERE username="L"
MYSQLGetGID              SELECT gid FROM logins WHERE username="L"
MYSQLGetDir              SELECT dir FROM logins WHERE username="L"

Сохраняем. Запускаем pure-FTPd следующей командой:

/usr/local/sbin/pure-config.pl /usr/local/etc/pure-ftpd.conf

Если требуется перезапуск фтп сервера, то можно, к примеру, остановить его командой:

/usr/local/etc/rc.d/pure-ftpd forcestop

и запустить его заново.

Осталось запаролить директорию средствами apache и можно работать :-)