Настройка сервера · 2 min read · Feb 09, 2026
Виртуальный хостинг с vsftpd и MySQL на Debian Etch - Страница 2
4 Настройка vsftpd
Сначала создадим непривилегированного пользователя с именем vsftpd (с домашним каталогом /home/vsftpd), принадлежащего группе nogroup. Мы будем запускать vsftpd от имени этого пользователя, а FTP каталоги наших виртуальных пользователей будут находиться в каталоге /home/vsftpd (например, /home/vsftpd/user1, /home/vsftpd/user2 и т.д.).
useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpdЗатем мы сделаем резервную копию оригинального файла /etc/vsftpd.conf и создадим свой:
cp /etc/vsftpd.conf /etc/vsftpd.conf_orig
cat /dev/null > /etc/vsftpd.conf
vi /etc/vsftpd.confФайл должен содержать следующее:
| listen=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES nopriv_user=vsftpd chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/vsftpd.pem guest_enable=YES guest_username=vsftpd local_root=/home/vsftpd/$USER user_sub_token=$USER virtual_use_local_privs=YES user_config_dir=/etc/vsftpd_user_conf |
Опции конфигурации объясняются на http://vsftpd.beasts.org/vsftpd_conf.html. Важные параметры для нашей виртуальной настройки: chroot_local_user, guest_enable, guest_username, user_sub_token, local_root и virtual_use_local_privs.
С помощью параметра user_config_dir вы можете указать каталог для конфигурационных файлов на пользователя, которые переопределяют части глобальных настроек. Это совершенно необязательно, и вы можете использовать эту функцию по своему усмотрению. Тем не менее, мы должны создать этот каталог сейчас:
mkdir /etc/vsftpd_user_confТеперь мы должны настроить PAM так, чтобы он использовал базу данных MySQL для аутентификации наших виртуальных FTP пользователей вместо /etc/passwd и /etc/shadow. Конфигурация PAM для vsftpd находится в /etc/pam.d/vsftpd. Мы сделаем резервную копию оригинального файла и создадим новый следующим образом:
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd_orig
cat /dev/null > /etc/pam.d/vsftpd
vi /etc/pam.d/vsftpd| auth required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2 account required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2 |
Пожалуйста, убедитесь, что вы заменили пароль MySQL на свой собственный!
После этого мы перезапустим vsftpd:
/etc/init.d/vsftpd restart5 Создание первого виртуального пользователя
Чтобы заполнить базу данных, вы можете использовать оболочку MySQL:
mysql -u root -pUSE vsftpd;Теперь мы создадим виртуального пользователя testuser с паролем secret (который будет храниться в зашифрованном виде с использованием функции PASSWORD MySQL):
INSERT INTO accounts (username, pass) VALUES('testuser', PASSWORD('secret'));
quit;domtestuser ‘s homedir - это /home/vsftpd/testuser; к сожалению, vsftpd не создает этот каталог автоматически, если он не существует. Поэтому мы создадим его вручную и сделаем владельцем пользователя vsftpd и группу nogroup:
mkdir /home/vsftpd/testuser
chown vsftpd:nogroup /home/vsftpd/testuserТеперь откройте свою FTP клиентскую программу на рабочей станции (что-то вроде WS_FTP или SmartFTP, если вы находитесь в системе Windows, или gFTP на настольном компьютере с Linux) и попробуйте подключиться. В качестве имени хоста используйте server1.example.com (или IP-адрес системы), имя пользователя - testuser, а пароль - secret.
Если вам удалось подключиться - поздравляем! Если нет, что-то пошло не так.
6 Администрирование базы данных
Для большинства людей проще, если у них есть графический интерфейс к MySQL; поэтому вы также можете использовать phpMyAdmin (в этом примере по адресу http://server1.example.com/phpmyadmin/) для администрирования базы данных vsftpd.

Каждый раз, когда вы создаете или изменяете пользователя, убедитесь, что вы используете функцию PASSWORD MySQL для шифрования пароля этого пользователя. Также, когда вы создаете нового виртуального пользователя, пожалуйста, не забудьте создать домашний каталог этого пользователя в оболочке, как показано в конце предыдущей главы.

7 Ссылки
- vsftpd: http://vsftpd.beasts.org
- Debian: http://www.debian.org
Get new posts in your inbox
No spam. Unsubscribe anytime.