На VPS сервере понадобилось настроить FTP, в качестве сервера будет использоваться VSFTPD, ниже будет описана простой и быстрый метод настройки сервера.
Установка vsftpd
Собственно установка:
После установки правим файл:
Запираем пользователей в свой домашней директории:
Запрещаем анонимный вход:
Открываем файл /etc/pam.d/vsftp
, комментим строку:
#auth required pam_shells.so
Добавляем в атозагрузку, перезапускаем демон (для старых CentOS):
service vsftpd start
Для CentrOS 7 и выше:
Разрешаем в Firewalld:
firewall-cmd --permanent --add-service=ftp firewall-cmd --reload
Создание пользователя для использование FTP
Создаем пользователя и указываем ему пароль:
passwd ftpuser
Меняем шелл для юзера:
usermod --shell /sbin/nologin ftpuser
Или можно сделать это руками — открываем файл /etc/passwd находим строку с нашим ftpuser:
Изменяем некоторые параметры:
Где /home/ftp домашний каталог пользователя, /sbin/nologin запрет на доступ пользователя к системе.
Обновляем разрешения к каталогу:
chmod a-w /home/ftpuser/
Либо можно отключить проверку разрешений на запись:
echo 'allow_writeable_chroot=YES' >> /etc/vsftpd/vsftpd.conf
Далее можно создать группу, к примеру ftpusers, назначить соответствующие разрешения на папку /home/ftp, как произвести настройку разрешений можно прочитать ЗДЕСЬ.
Подключение к сереру
Для подключения я как правило использую FileZilla или Total Commander, в настройках подключения указываем адрес сервера, имя пользователя ftpuser, его пароль, корневую директорию, необходимо указать как — / , по факту подключения пользователь окажется в папке /home/ftp.