Несколько общих вещей, которые я изучил за эти годы:
Проверьте файл /etc/pam.d/vsftpd, служба pam для vsftpd использует pam_shells.so
pam_shells.so
pam_shells is a PAM module that only allows access to the system if the users shell is listed in /etc/shells.
It also checks if /etc/shells is a plain file and not world writable.
, вам нужно только добавить / bin / false в / etc / shells файл
Вы можете использовать vsftpd «виртуальные пользователи» , где пользователи в базе данных виртуальных пользователей имеют только доступ по ftp и ничего больше.