FTP server в Linux Ubuntu

apt-get install ssh — Удалённый доступ ssh через putty
apt-get install vsftpd — установить ftp сервер

nano /etc/vsftpd.conf — редактировать файл конфигурации (поправить коменты):

service vsftpd status — сведения о vsftpd
systemctl start vsftpd — запустить vsftpd
systemctl enable vsftpd — автозапуск vsftpd
service vsftpd restart — перезапуск FTP vsftpd.
ufw allow 20/tcp — открыть порт FTP данных в фаерволе
ufw allow 21/tcp — открыть порт FTP команд в фаерволе
adduser user — добавить user’а с параметрами из /etc/adduser.conf и папками из /etc/skel
mkdir /home/user/ftp — создать папку в папке пользователя
chown user /home/user/ftp — дать полный доступ к папке user’у

Виртуальные пользователи
Чтобы отключить локальных и включить виртуальных, закоментить всё в /etc/pam.d/vsftpd и добавить:

apt-get install vsftpd libpam-pwdfile apache2-utils — установить libpam-pwdfile и apache2-utils, если не установлены с апачем.
htpasswd -c -d /etc/vsftpwd user — создать виртуального пользователя. -c создаёт файл паролей, с перезаписью, -d — алгоритм шифрования хэша пароля. Следующие без -c
htpasswd -D /etc/vsftpwd user — удалить юзера
service vsftpd restart — перезапустить службу vsftpd.
htpasswd -bd /etc/vsftpwd user 1 && mkdir /home/vsftpd/user && chown ftp /home/vsftpd/user — создать user’а с паролем 1, папку и назначить права на папку локальному ftp пользователю.