Полезное для программистов:

Фриланс
Новости
Статьи
   
Рубрики:


Установка и настройка proftpd с хранением пользователей в БД

Поиск:
Установка и настройка proftpd с хранением пользователей в БД MySQL на FreeBSD
устанавливаем из портов:
Код

#cd /usr/ports/ftp/proftpd/
#make install WITH_MYSQL=yes
#make clean

proftpd установлен, приступим к его настроки. Для начала посмотрим, подключился ли модуль для работы с MySQL.

Код

#cd /usr/local/libexec/
#./proftpd -l | grep
mod_sql.c
mod_sql_mysql.c


Всё нормально, можно продолжать. Конфигурационный файл находится в /usr/local/etc/proftpd.conf

Код

ServerName "My FTP Server"
ServerType standalone
DefaultServer on
Port 21
Umask 022
MaxInstances 30
# Под кем будет запускаться FTP демон
User nobody
Group nogroup
# Разршим доступ, только группе ftp

AllowGroupftp
DenyALL

# настройки для авторизации через mysql. (пароли используются в открытом виде: PlainText)

SQLConnectInfo proftpd@localhost:3306 proftpd myftpserver
SQLAuthTypes PlainText
SQLUserInfo users userid passwd uid gid homedir shell
DefaultRoot ~
RequireValidShell off
SQLGroupInfo groups groupname gid members
SQLAuthenticate users groups
SQLLogFile/var/log/proftpd.log

-----------------------------------------
Создание БД для FTP. Для начала создадим пользователя, который будет владельцем данной базы данных, пусть это будет proftpd:

Код

mysql -u root -p
Enter password:
mysql>grant select,insert,update,delete,create,drop
->on proftpd.*
->to proftpd@localhost
->identified by 'myftpserver';
Query OK, 0 rows affected (0.16 sec)
mysql>exit;
Зайдём теперь под только что созданным пользователем, и собственно создадим саму БД:
mysql -u proftpd -p
Enter password:
mysql>create database proftpd;
Далее создадим две табилци users и groups:
mysql>use proftpd;
Database changed
mysql> CREATE TABLE users (
-> userid VARCHAR(30) NOT NULL UNIQUE,
-> passwd VARCHAR(80) NOT NULL,
-> uid INTEGER UNIQUE,
-> gid INTEGER,
-> homedir VARCHAR(255),
-> shell VARCHAR(255)
-> );
Query OK, 0 rows affected (0.03 sec)

mysql> CREATE TABLE groups (
-> groupname VARCHAR(30) NOT NULL,
-> gid INTEGER NOT NULL,
-> members VARCHAR(255)
-> );
Query OK, 0 rows affected (0.01 sec)
mysql>
mysql> use proftpd
Database changed
mysql> CREATE TABLE users (
-> userid VARCHAR(30) NOT NULL UNIQUE,
-> passwd VARCHAR(80) NOT NULL,
-> uid INTEGER UNIQUE,
-> gid INTEGER,
-> homedir VARCHAR(255),
-> shell VARCHAR(255)
-> );
Query OK, 0 rows affected (0.03 sec)



Добавим тестового пользователя:

Код

mysql>insert into groups values('ftp','5001','');
mysql>insert into users values('test','testftp','5001','5001','/home/ftp/test','/sbin/nologin');
mysql>exit;
mkdir /home/ftp/test
chown 5001.5001 /home/ftp/test

создаём лог-файл:
Код

touch /var/log/proftpd.log

Запуск демона:
Код

cd /usr/local/etc/rc.d
cp proftpd.sh.sample proftpd.sh
chmod +x proftpd.sh
sh proftpd start
ps ax | grep proftpd
10544 ?? Is 0:00,01 proftpd: (accepting connections) (proftpd)


Proftpd ждёт ваших коннектов :)
Автор: unixwood
Сайт: http://www.unixwood.org.ru






Просмотров: 8513

 

 

Новые статьи:


Популярные:
  1. Как сделать цикличным проигрывание MIDI-файла?
  2. Создание AVI файла из рисунков
  3. Как устройство "отключить в данной конфигурации"?
  4. Kто в данный момент присоединен через Сеть?
  5. Как узнать количество доступной памяти?
  6. Как реализовать в RichEdit разноцветный текст?
  7. Как скрыть свое приложение от ProcessViewer
  8. Как программно нажать/скрыть/показ кнопку "Start"?
  9. Модуль работы с ресурсами в PE файлах
10. Функции вызова диалоговых окон выбора
11. Проверка граматики средствами Word'а из Delphi.
12. Модуль для упрощенного вызова сообщений
13. Функции для записи и чтение своих данных в, ЕХЕ- файле
14. Рекурсивный просмотр директорий
15. Network Traffic Monitor
16. Разные модули
17. Универсальная функция для обращения к любым экспортируем функциям DLL
18. Библиотека от VladS
19. Протектор для UPX'а
20. Еще об ICQ, сообщения по контакт листу?
21. Использование открытых интерфейсов
22. Теория и практика использования RTTI
23. Работа с TApplication
24. Примеры использования Drag and Drop для различных визуальных компонентов
25. Что такое порт? Правила для работы с портами
26. Симфония на клавиатуре
27. Загрузка DLL
28. Исправление автоинкремента
29. Взаимодействие с чужими окнами
30. Проверить дубляжи в столбце


 

 

 
 
На главную