Простая установка FTP-сервера на FreeBSD.
На самом деле по умолчанию во freebsd уже установлен ftp-сервер, нам нужно его только сконфигурировать.
Выполняем для добавления запуска ftp в /etc/rc.conf.
# echo 'ftpd_enable="YES"' >> /etc/rc.conf
# echo 'ftpd_flags="-l -l"' >> /etc/rc.conf
Далее смотрим файл /etc/ftpusers, тут указаны пользователи которым запрещён доступ к ftp.
# cat /etc/ftpusers
При необходимости редактируем его.
Затем чтобы разрешить доступ пользователя к каталогу выполним.
# echo 'user /var/www/site.ru' >> /etc/ftpchroot
Где user — существующий на сервере пользователь, а /var/www/site.ru — его каталог.
Запускаем ftp-сервер
# /etc/rc.d/ftpd start
И пробуем подключится с логином и паролем user.
Р.S.: Если у user в качестве shell используется /sbin/nologin, то подключение не произойдет. FTP-клиент сообщит что-то типа:
access denied
а в логах сервера будет:
ftpd: connection from 10.8.0.1 (10.8.0.1)
ftpd: FTP LOGIN REFUSED FROM 10.8.0.1, user
Проверить какой shell используется для юзера можно командой:
# pw usershow user
В этом случае нам нужно создать /sbin/nologin-ftp и прописать его у пользователя вместо /sbin/nologin. Делается это очень просто:
# echo '/sbin/nologin-ftp' >> /etc/shells
# ln -s /usr/sbin/nologin /sbin/nologin-ftp
# pw usermod user -s /sbin/nologin-ftp
Теперь подключение должно происходить без проблем.