Видимо, из-за проверки корректности шелла, которую по умолчанию делает vsftpd:
Цитата:
check_shell
Note! This option only has an effect for non-PAM builds of vsftpd. If disabled, vsftpd will not check /etc/shells for a valid user shell for local logins.
Default: YES
|
Либо проставить NO, либо добавить в /etc/shells /sbin/nologin или /usr/bin/false (тут вы походу немножко перепутали, но which nologin и which false вам помогут найти корректные пути для шеллов-затычек).