Essas contas reais do Linux são criadas em sua aplicação?
vsftpd
pode trabalhar com contas reais ou usuários virtuais (lidos de um arquivo), bem como "chroot" suas contas para um diretório específico para que não possam acessar diretórios de lá, mas de qualquer forma uma certa quantidade de configuração (por padrão, parece permitir apenas o acesso anônimo). Independentemente de você estar usando usuários reais ou virtuais, será necessário habilitar usuários "locais". O vsftpd usa o PAM para todos os usuários locais, portanto, para usuários virtuais, você precisará apagar e substituir completamente o /etc/pam.d/vsftpd com as informações do tutorial aqui . Se forem usuários criados no aplicativo, seu aplicativo precisará ter acesso de gravação ao arquivo passwd virtual apontado na configuração do PAM acima, e cada novo usuário terá seu nome de usuário e um hash apropriado de sua senha armazenado no arquivo .
Se você é bom com o PAM e tem os pacotes apropriados instalados, o PAM possui vários módulos diferentes que podem ser usados para isso, pode haver um que possa ler a mesma tabela de banco de dados usada pelo aplicativo para executar o nome de usuário / pesquisa de senha.