Настройка виртуальных пользователей ProFTPD 1.32 и MySQL 5 (Gentoo)

proftpdПродолжаем настройку своего собственного хостинга. Следующий этап настройки это реализация возможности предоставлять доступ клиентам хостинга (нескольким пользователям). Причем каждый пользователь должен получить доступ к собственной папке (не иметь доступ к чужим данным). Реализовывать это пользователями системы нерационально. Лучший вариант хранения этих пользователей в БД MySQL. Сейчас рассмотрим, как это сделать.

1. Поставим сам FTP сервер :
Emerge proftpd
Дождемся установки. И запустим наш ftp сервер:
 /etc/init.d/proftpd start

2. Теперь в заранее поставленной MySQL, создаем базу данных proftpd:


CREATE DATABASE `proftpd` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `proftpd`;

Теперь создаем 2 таблицы и наполняем их тестовыми данными:


CREATE TABLE IF NOT EXISTS `groups` (
  `groupname` varchar(30) NOT NULL default '',
  `gid` int(11) NOT NULL default '0',
  `members` varchar(255) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `users` (
  `username` varchar(30) NOT NULL default '',
  `password` varchar(30) NOT NULL default '',
  `uid` int(11) default NULL,
  `gid` int(11) default NULL,
  `homedir` varchar(255) default NULL,
  `shell` varchar(255) default NULL,
  `count` int(11) NOT NULL default '0',
  UNIQUE KEY `username` (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `users` (`username`, `password`, `uid`, `gid`, `homedir`, `shell`, `count`) VALUES
('user', 'pass', 5010, 5010, '/home/webmaster/www/', '/bin/nologin', 0);

Настройка Mysql на этом закончена теперь приступим к настройке самого сервера. Да еще sql лучше выполнять через myPHPadmin настройку которого мы расматривали в предыдущей статье.

3.  Теперь настраиваем конфигурацию FTP сервер. Открываем файл proftpd.conf в папке /etc/proftpd и изменяем таким образом:

ServerName                      «FTP Server World Programs»
DefaultServer                   on

Port                            21
Umask                           002
TimeoutLogin 120
TimeoutIdle 600
TimeoutNoTransfer 900
TimeoutStalled 3600

User                            proftpd
Group                           proftpd

MaxInstances 50
MaxClientsPerHost               5

AllowRetrieveRestart            on
AllowStoreRestart               on
AllowOverwrite                  on
AllowOverride                   off

RootLogin                       off
IdentLookups                    off
UseReverseDNS off
DenyFilter                      *.*/
TimesGMT                        off

DefaultRoot                     ~

RLimitCPU                       600 600
RLimitMemory                    64M 64M
RLimitOpenFiles                 1024 1024

LogFormat                       default «%h %l %u %t „%r“ %s %b»
LogFormat                       auth    «%v [%P] %h %t „%r“ %s»
LogFormat                       write   «%h %l %u %t „%r“ %s %b»

<Global>
 SQLConnectInfo
proftpd@localhost root password  # это пароль для конекта к Mysql (скорее он другой)
 SQLAuthTypes plaintext
 SQLUserInfo users username password uid gid homedir NULL
RequireValidShell off
 SQLGroupInfo groups groupname gid members
 SQLAuthenticate users*

 SQLNamedQuery getcount SELECT «count, username from users where username='%u'»
 SQLNamedQuery updatecount UPDATE «count=count+1 WHERE username='%u'» users
 SQLShowInfo PASS «230» «You've logged on %{getcount} times, %u»
 SQLLog PASS updatecount
RootLogin on
AuthAliasOnly off
UseFtpUsers off
LoginPasswordPrompt off
AllowOverwrite on
</Global>  

ListOptions -a

Созраняем файл и пререзапускаем FTP сервер:

/etc/init.d/proftpd restart

Теперь проверем работает ли пользователь конектимся к нашему ftp и вводим логин user пароль pass , мы должны приконектиться и увидеть папку /home/webmaster/www/.

Если этого непроизошло проверьте существует ли она на самом деле, а если существует то дайте её права доступа для всех пользователей (ну или для конкретно созданного, это делается уже в самой системе). На это всё! Статью написал Пензин Константин — Web прораммист компании World Programs

Спонсор статьи World Programs — Разработка Сайтов В Тольятти

Запись навигация

Top