К основному контенту

Как поднять ftp-сервер на Linux без гемора

FTP нужен для передачи файлов по локальной сети и интернету, и при этом он более платформонезависим, нежели SMB. Минимальную поддержку этого протокола ообеспечивают все веб-браузера, а проводник на Windows и Nautilus на Linux-системах предоставляют полную работу над файлами в стандартном, привычном интерфейсе.

Короче говоря, крутая вещь, как ни крути, и бессмертная. Подойдёт для передачи файлов в небольшой сети, чтобы скинуть файлы другу, или для предоставления ресурсов на постоянной основе без частой многопользовательской нагрузки. Если же нужно именно последнее, но понадобятся P2P-решения, но об этом не здесь.

Возьмём Pure-FTPd — он прост в использовании, но обладает гибкой настройкой, а также поддержку шифрующих надстроек над стандартным протоколом фтп — SSL/TLS.

Перед этим была попытка поставить vsftpd, но она кончилась баттхёртом, а здесь вот несколько красивых сниппетов в духе «скопировал — и готово».

Выберем, как мы будем разграничивать доступ:

  • можно разрешить анонимный доступ — тогда любой без пароля может войти на сервер. Без дополнительной конфигурации это даёт частичный доступ ко всему компьютеру, что может быть опасно.
  • можно создать отдельного пользователя с паролем, и тогда гости смогут заходить под этой парой логин-пароль. Это подходит для автозапуска в системе.

В любом случае идёт поддержка профилей пользователей на системе сервера. Можно будет зайти, например, под профилем админа, введя свой пароль, и получить так по сети полный доступ.

Указываю коды для dnf (напр. для Fedora и EnterpriseLinux). Пользователям Debian и Ubuntu нужно заменить dnf на apt-get.

Анонимный доступ

Выполняем:

sudo useradd ftp
sudo dnf install pure-ftpd
sudo usermod -a -G ftp ftp
sudo pure-ftpd &

Всё, готово :)

Доступ под пользователем-гостем

Здесь этот специальный пользователь называется ftpguest. Выполняем:

sudo useradd ftpguest
sudo passwd ftpguest

Вводим пароль пользователя. Символы будут скрыты. Применяем и добавляем оставшиеся команды:

sudo dnf install pure-ftpd
sudo usermod -a -G ftp ftpguest
sudo pure-ftpd &

Ручной запуск сервера & настройки

В сниппетах за запуск сервера отвечает команда sudo pure-ftpd &

Можно указать, для какого адреса (и, соответственно, и сетевого интерфейса) будет работать сервер:

sudo pure-ftpd -S 192.168.0.42,21
sudo pure-ftpd -S ftp.example.com,21

Другие настройки можно найти в официальном Readme.

Сервер проверен и работает; в ночь после написания статьи друг успел скачать без нареканий скомпилированный Unreal Engine в 30 гигов.

Комментарии

  1. Спасибо, за краткую и информативную статью. Очень помогло. Ещё раз Спасибо.

    ОтветитьУдалить

Отправить комментарий

Популярные сообщения из этого блога

Что делать, если Error mounting: can't read superblock

Вот такая радость меня встретила сегодня утром — дополнительный жёсткий диск в ноутбуке перестал работать. Часть прог не работает, другие не могут найти рабочие проекты. При монтировании диска через тот же Наутилус пишет: Error mounting system-managed device dev/sdb3: can't read superblock on /dev/sdb3 (udisks-error-quark, 0)

Установить Midnight Commander на Fedora, CentOS и RHEL — файловый менеджер в терминале

Волей-неволей в жизни девопса иногда приходится работать без графического интерфейса. Или же нужно сделать что-то в своей файловой системе без иксов. Midninght Commander — это файловый менеджер с терминальным интерфейсом, который схож визуально с Total Commander с его разделением на два окна. Миднайт командер также поддерживает управлению мышью, да и в общем идеален для тех, кто привык к графическим интерфейсам и боится vim -а (как я). Если ввести dnf search midnight commander , то ничего не найдётся. Всё потому, что в пакетных менеджерах называется он просто mc , а в описании полного названия нет: Устанавливается он довольно просто. Для Fedora: sudo dnf install -y mc Для RHEL/CentOS: sudo yum install -y mc И всё, можно пользоваться: mc

Как обновить Fedora, если Error running transaction: package X is already installed

Наконец-то руки дошли обновить федору до версии 33. Только вот нельзя просто так взять её и обновить — ГУИшный установщик ПО найдёт, где выпендриться. Ошибка значит в переводе, что не удаётся провести транзакцию (грубо говоря, установку), из-за того, что такой-то пакет уже установлен. О ужас! Почему это считается вообще ошибкой — философский вопрос, а чинить как-то надо. Запускаем командную строку. Выполняем команды (только прочитайте сначала текст ниже): sudo dnf upgrade --refresh -y sudo dnf update dnf-plugin-system-upgrade -y sudo dnf system-upgrade download --releasever=33 --allowerasing -y -b Первая команда обновляет все пакеты в системе. Вторая обновляет плагин для обновления самой системы. (На самом деле, плагин и так обновится первой командой. Это скорее для проверки существования самого пакета. Если команда валится и пишет, что такого пакета нет, выполните sudo dnf install dnf-plugin-system-upgrade .) Третья скачивает все пакеты, которые нужны для самого обновления