Оригинал:
http://wiki.centos.org/HowTos/Chroot_Vsftpd_with_non-system_users
Ставим пакеты:
# yum install vsftpd db4-utils
Далее заливаем на сервер срипты и выполняем. Стоит заметить что если у вас x64 система, то надо будет подправить файл /etc/pam.d/ftp и заменить /lib на /lib64 в двух пуях.
Так же, у меня выкинуло ошибку при создании пользователя. Лечится она предельно просто:
# cat vaftpd_virtualuser_config.tpl /etc/vsftpd/users/%username%
и в последнем исправляем USERNAME на имя пользователя в пути.
После этого, можно смело коннектится.
Скачать скрипты: centos_vsftpd_scripts
Upd:
Как добавить НЕ виртуального пользователя? Будем исходить из того что пользователь уже есть в системе, так что сразу перейдем к делу. Во-первых, уберем его из файла /etc/vsftpd/denied_users. Во-вторых, пропишем пользователя и пароль для логина в /etc/vsftpd/accounts.tmp (логин и пароль с новой строки!). В директории /var/vsftpd/users/ создадим файл как имя юзера и впишем туда следующее:
dirlist_enable=YES
dirmessage_enable=YES
download_enable=YES
write_enable=YES
local_root=/path/to/user/dir/
После этого остается только обновить базу пользователей и перезагрузить сервис.
# db_load -T -t hash -f /etc/vsftpd/accounts.tmp /etc/vsftpd/accounts.db