Авг 062015
 

Возникла задачка поднять vsftpd так, чтобы работали только виртуальные пользователи. И каждому выделялся свой chroot. Нашёл пару статей – FTP сервер с поддержкой виртуальных аккаунтов и VsFTPD and Virtual users on Debian – но, не работает. Чтение мануала ни к чему не привело. Спасло вот это – vsftpd will not accept passwords encrypted with MD5. В двух словах: htpasswd формирует пароль, который через pam не распознаётся.

  • Нужен ключик “-d”. Примерно так, htpasswd -c -d /etc/vsftpd/ftpd.passwd phpmyadmin
  • В конец каждой строки конфигурационного файла /etc/pam.d/vsftpd надо добавить “crypt=2”

Итого, файл /etc/pam.d/vsftpd

auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd crypt=2
account required pam_permit.so crypt=2

В конфиге пользователя (например, /etc/vsftpd/users/dog) можно написать свои настройки:

guest_username=ftp
local_root=/home/ftp/dog