Это может быть сделано очень легко с PAM.
Если Ваш disto не будет идти с PAM, то необходимо будет захватить копию, поскольку vsftpd использует PAM для аутентификации виртуальных пользователей.
Существует debian пакет для pam_pwdfile, уже доступного, альтернативно, загрузите и скомпилируйте его, если Ваша копия Linux уже не идет с ним:
apt-get install libpam-pwdfile
Во-первых, создайте файл паролей для первого пользователя:
htpasswd -c /etc/vsftpd/passwd user1
И затем:
htpasswd /etc/vsftpd/passwd user2
Затем необходимо отредактировать vsftpd конфигурационный файл/etc/vsftpd.conf
listen=YES
anonymous_enable=NO
local_enable=YES
virtual_use_local_privs=YES
write_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
guest_enable=YES
user_sub_token=$USER
local_root=/var/www/sites/$USER
chroot_local_user=YES
hide_ids=YES
Наконец необходимо настроить PAM для использования файла паролей, так отредактируйте/etc/pam.d/vsftpd
# Customized login using htpasswd file
auth required pam_pwdfile.so pwdfile /etc/vsftpd/passwd
account required pam_permit.so
Не забывайте перезапускать vsftpd, и это - в значительной степени он!
Твой третий пункт должен решить эту проблему, поскольку я делал то же самое раньше. Ключ в том, как /etc/nsswitch.conf определяется для типа поиска группы. Вы бы также хотели, чтобы ldap определялся перед файлами, чтобы он сначала выполнял поиск в каталоге LDAP для любой группы и, таким образом, переопределил, поскольку он будет использовать первое совпадение и пропускать оставшиеся определенные службы имен.
Сделайте снимок или опубликуйте группу. строка из /etc/nsswitch.conf.
Я не уверен, как все работало в прошлом, но я пишу это для тех, кто ищет решение сейчас и в будущем.
В Ubuntu 16.04 с вашим третий пункт, я сделал это. Здесь важно сделать запись ldap
ПОСЛЕ записи files
в строке группы в /etc/nsswitch.conf
.