Работа с FTP сервером из C#

Наверное многие сталкивались с необходимостью создать простой FTP клиент для своих нужд на C#. Вот и меня не миновало. Недавно пришлось делать специфическое приложение для обновления ПО через FTP. И самым полезным что я нашёл для этой цели оказался набор библиотечек (кстати с исходниками) BytesRoad.NetSuit. Очень простой компонент предоставляющий весь основной функционал для работы с FTP.

В коплекте 3 библиотеки:

BytesRoad.Diag.dll
BytesRoad.Net.Ftp.dll
BytesRoad.Net.Sockets.dll
Подробнее

Пример кконфигурации для FTP (vsftpd) с блокировкой пользователя в домашней папке.

Пример кконфигурации для FTP (vsftpd) с блокировкой пользователя в домашней папке.

IУстанавливаем FTP в Ubuntu:

sudo apt install vsftpd

Это просто.


Теперь открываем конфигурационный файл:

/etc/vsftpd.conf


Проверяем чтобы параметры в этом файле были как эти:

listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
ftpd_banner=Welcome to My FTP service.
allow_writeable_chroot=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO


Так-же создаем файл 

/etc/vsftpd.chroot_list

(если его не существует)

и добавляем в него коды пользователей, к примеру так:

1002
1003

Коды пользователей можно посмотреть в /etc/passwd


Перезапускаем FTP сервис, и пробуем подключиться по FTP.

Если у вас включен файрвол, тогда надо добавить в нем правила для 20 и 22 портов.

Теперь пользователь при входе по FTP будет блокирован в собственной домашней папке.

Домашняя папка пользователя может быть изменена в /etc/passwd

Подробнее

Как запреть FTP пользователя в своей папке Linux

Рецепт, чтобы запереть FTP пользователя в своей папке.

Прописать в vsftpd.conf:

local_enable=YES
allow_writeable_chroot=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list


В файле /etc/vsftpd.chroot_list надо указать UserId пользователей для которых это правило будет действовать.

Подробнее