Виртуальный хостинг · 4 min read · Jan 07, 2026
Виртуальный хостинг с PureFTPd и MySQL (включая управление квотами и пропускной способностью) на Mandriva 2008 Spring - Страница 2
6 Заполнение базы данных и тестирование
Чтобы заполнить базу данных, вы можете использовать оболочку MySQL:
mysql -u root -pUSE pureftpd;Теперь мы создаем пользователя exampleuser со статусом 1 (что означает, что его FTP-аккаунт активен), паролем secret (который будет храниться в зашифрованном виде с использованием функции MD5 MySQL), UID и GID 2001 (используйте userid и groupid пользователя/группы, которые вы создали в конце второго шага!), домашний каталог /home/www.example.com, пропускную способность загрузки и скачивания 100 КБ/с (килобайтов в секунду) и квоту 50 МБ:
INSERT INTO `ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) VALUES ('exampleuser', '1', MD5('secret'), '2001', '2001', '/home/www.example.com', '100', '100', '', '*', '50', '0');quit;Теперь откройте свою FTP-клиентскую программу на рабочей станции (что-то вроде WS_FTP, SmartFTP или FileZilla, если вы на системе Windows, или gFTP или FileZilla на настольном компьютере Linux) и попробуйте подключиться. В качестве имени хоста используйте server1.example.com (или IP-адрес системы), имя пользователя - exampleuser, а пароль - secret.
Если вы смогли подключиться - поздравляю! Если нет, что-то пошло не так.
Теперь, если вы выполните
ls -l /homeвы должны увидеть, что каталог /home/www.example.com (домашний каталог exampleuser) был создан автоматически, и он принадлежит ftpuser и ftpgroup (пользователь/группа, которую мы создали в конце второго шага):
[root@server1 ~]# ls -l /home
total 8
drwxr-xr-x 3 administrator administrator 4096 2008-04-09 14:58 administrator/
drwxr-xr-x 2 ftpuser ftpgroup 4096 2008-04-11 14:40 www.example.com/
[root@server1 ~]#7 Администрирование базы данных
Для большинства людей проще, если у них есть графический интерфейс для MySQL; поэтому вы также можете использовать phpMyAdmin (в этом примере по адресу http://server1.example.com/phpmyadmin/) для администрирования базы данных pureftpd.

Каждый раз, когда вы хотите создать нового пользователя, вам нужно создать запись в таблице ftpd, поэтому я объясню столбцы этой таблицы здесь:
Таблица ftpd:
- User: Имя виртуального пользователя PureFTPd (например, exampleuser).
- status: 0 или 1. 0 означает, что аккаунт отключен, пользователь не может войти.
- Password: Пароль виртуального пользователя. Убедитесь, что вы используете функцию MD5 MySQL для сохранения пароля в зашифрованном виде в виде строки MD5:

- UID: userid FTP-пользователя, которого вы создали в конце второго шага (например, 2001).
- GID: groupid FTP-группы, которую вы создали в конце второго шага (например, 2001).
- Dir: Домашний каталог виртуального пользователя PureFTPd (например, /home/www.example.com). Если он не существует, он будет создан, когда новый пользователь войдет в первый раз через FTP. Виртуальный пользователь будет заключен в этот домашний каталог, т.е. он не сможет получить доступ к другим каталогам вне своего домашнего каталога.
- ULBandwidth: Пропускная способность загрузки виртуального пользователя в КБ/с (килобайтах в секунду). 0 означает неограниченно.
- DLBandwidth: Пропускная способность скачивания виртуального пользователя в КБ/с (килобайтах в секунду). 0 означает неограниченно.
- comment: Вы можете ввести здесь любой комментарий (например, для вашего внутреннего администрирования). Обычно это поле оставляют пустым.
- ipaccess: Введите IP-адреса, которые могут подключаться к этому FTP-аккаунту. * означает, что любой IP-адрес может подключаться.
- QuotaSize: Объем хранилища в МБ (не КБ, как в ULBandwidth и DLBandwidth!), который виртуальный пользователь может использовать на FTP-сервере. 0 означает неограниченно.
- QuotaFiles: количество файлов, которые виртуальный пользователь может сохранить на FTP-сервере. 0 означает неограниченно.
8 Анонимный FTP
Если вы хотите создать анонимный FTP-аккаунт (FTP-аккаунт, в который каждый может войти без пароля), вам нужен пользователь и группа с именем ftp. Оба были созданы автоматически, когда вы установили пакет pure-ftpd, поэтому вам не нужно создавать их вручную. Однако домашний каталог ftp по умолчанию - /var/ftp, но я хотел бы создать анонимный FTP-каталог в /home/ftp (обычные FTP-каталоги пользователей также находятся в /home, например, /home/www.example.com). Но, конечно, вы можете использовать каталог /var/ftp для анонимного FTP, если предпочитаете.
Если вы хотите использовать /home/ftp, откройте /etc/passwd и измените домашний каталог пользователя ftp с /var/ftp на /home/ftp (не делайте этого, если хотите использовать /var/ftp):
vi /etc/passwd| [...] #ftp:x:80:423:system user for pure-ftpd:/var/ftp:/bin/false ftp:x:80:423:system user for pure-ftpd:/home/ftp:/bin/false [...] |
Затем переместите /var/ftp в /home (не делайте этого, если хотите использовать /var/ftp):
mv /var/ftp /homeМы используем каталоги /home/ftp/incoming (которые позволят анонимным пользователям загружать файлы) и /home/ftp/pub (откуда анонимные пользователи могут скачивать). Оба каталога уже существуют. Мы дадим каталогу /home/ftp/incoming права 311, чтобы пользователи могли загружать, но не видеть или скачивать любые файлы в этом каталоге. Каталог /home/ftp/pub будет иметь права 555, что позволяет видеть и скачивать файлы:
chown -R ftp:nogroup /home/ftp
cd /home/ftp
chmod 311 incoming/
chmod 555 pub/
cd ../
chmod 555 ftp/(Если вы хотите использовать /var/ftp вместо этого, замените /home/ftp на /var/ftp в приведенных выше командах.)
Анонимные пользователи смогут войти, и им будет разрешено скачивать файлы из /home/ftp/pub, но загрузки будут ограничены до /home/ftp/incoming (и как только файл загружен в /home/ftp/incoming, его нельзя прочитать или скачать оттуда; администратор сервера должен переместить его в /home/ftp/pub, чтобы сделать его доступным для других).
Теперь нам нужно настроить PureFTPd для анонимного FTP. Откройте /etc/pure-ftpd/pure-ftpd.conf и убедитесь, что у вас есть следующие настройки:
vi /etc/pure-ftpd/pure-ftpd.conf| [...] NoAnonymous no [...] AntiWarez no [...] AnonymousBandwidth 8 [...] AnonymousCantUpload no [...] |
(Настройка AnonymousBandwidth является необязательной - она позволяет вам ограничить пропускную способность загрузки и скачивания для анонимных пользователей. 8 означает 8 КБ/с. Используйте любое значение, которое вам нравится, или закомментируйте строку, если не хотите ограничивать пропускную способность.)
Наконец, мы перезапускаем PureFTPd:
/etc/init.d/pure-ftpd restart9 Ссылки
- PureFTPd: http://www.pureftpd.org
- MySQL: http://www.mysql.com
- phpMyAdmin: http://www.phpmyadmin.net
- Mandriva: http://www.mandriva.com
Get new posts in your inbox
No spam. Unsubscribe anytime.